【发布时间】:2016-11-10 18:05:54
【问题描述】:
我有一个 UITableView,我用自动调整单元格填充。
UITableView 设置相当简单:
tableView.estimatedRowHeight = 70
tableView.rowHeight = UITableViewAutomaticDimension
要启用自调整大小的表格视图单元格,您必须设置表格视图的 UITableViewAutomaticDimension 的 rowHeight 属性。你还必须 为estimatedRowHeight 属性赋值。只要两者 设置好这些属性后,系统使用 Auto Layout 来计算 行的实际高度。
在配置单元格时,我还会禁用/启用一些约束以实现所需的外观。这就是事情变得有趣的地方。在重新使用单元格之前,不会更新单元格布局。字面上地。您可以调用layoutIfNeeded()、setNeedsLayout()、layoutSubviews() 或任何其他方法,您无法强制单元格更新其布局。
所有其他方面都工作得很好:标签确实改变了它们的文本,你隐藏/取消隐藏视图,但布局被卡住,直到单元格被重用。
问题:是什么原因造成的以及如何避免这种行为?
【问题讨论】:
标签: ios swift uitableview autolayout