我有一个tableView哪些行'高度是使用UITableViewAutomaticDimension
和IB的AutoLayout约束动态计算的。
我在每个单元格中都有一个绑定到ReactiveCocoa MutableProperty的标签,以便每次更改时都会更新。
文本更改通常也会超出现有单元格,我似乎无法找到通知UITableView应重新计算单元格高度的方法。
使用tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
或tableView.reloadData()
不是一种选择,因为它远非侵入性,除非明确管理,否则可能导致循环......
有没有办法只传达最少的信息"请更新这个UITableViewCell"的高度,而不丢弃该单元格?
cell.setNeedsLayout()
似乎不够。
答案 0 :(得分:2)
根据this answer,在UITableViewCell
添加到表格视图后可靠地调整大小的唯一方法,以及Apple建议的方法,是调用以下两种方法:
[tableView beginUpdates];
[tableView endUpdates];