UITableView rowHeight UITableViewAutomaticDimension 首次加载后单元格高度错误

Posted

技术标签:

【中文标题】UITableView rowHeight UITableViewAutomaticDimension 首次加载后单元格高度错误【英文标题】:UITableView rowHeight UITableViewAutomaticDimension cell wrong height after first load 【发布时间】:2017-07-29 17:19:20 【问题描述】:

我有一个 UITableViewCell 子类,它有两个可变高度的标签。 AFAIK,自动布局约束是正确的。第一次在表格中渲染单元格时它是正确的,但是任何后续渲染都被吹得太高了。即使在父视图控制器被释放之后!它实际上需要重新启动应用才能恢复正常。

我已尝试在单元格类中的 prepareForReuse 覆盖中清除标签文本。

// viewDidLoad tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 300

【问题讨论】:

【参考方案1】:

为了支持 textview 的动态布局,需要一个高度约束,并且需要在 layoutSubviews 方法中更新(你需要子类化 UITextview)。

除此之外,您还需要确保您有一个 UITextview 底部约束与单元格的 contentView。

【讨论】:

【参考方案2】:

听起来您对UILabel 的底部约束正在增加。检查您是否正在更新底部约束常量值。

【讨论】:

以上是关于UITableView rowHeight UITableViewAutomaticDimension 首次加载后单元格高度错误的主要内容,如果未能解决你的问题,请参考以下文章

iOS:UIImageView随着UITableView.rowHeight的变化而变化,如何避免?

Xcode 6 iOS 8 UITableView rowHeight 属性返回-1 [重复]

当我为 UITableView 设置 rowHeight 时,单元格的高度不应该也改变吗?

当我更改行数时,具有 rowHeight UITableViewAutomaticDImension 的 UITableView 不会更新

UITableView rowHeight UITableViewAutomaticDimension 首次加载后单元格高度错误

iOS8:可以对静态单元格使用“tableview.rowHeight = UITableViewAutomaticDimension”吗?