tableViewCell
包含 viewController,它的高度是在 tableView 完成视图布局后计算的。所以我需要通过调用方法触发tableView
再次请求行高。heightForRowAtIndexPath
我试过setNeedsLayout
了,不行,系统不会调用heightForRowAtIndexPath
方法。
reloadData
或者reloadRowsAtIndexPaths
不是很好的选择,因为它会重新加载所有的单元格,并且所有的viewControllers都内置到单元格中,当viewController完成布局过程并被viewDidLayoutSubviews
调用时,reloadData
会再次调用,所以它是一个无限循环。
我正在测试tableView.beginUpdates() tableView.endUpdates()
空更新操作。有时它会触发heightForRowAtIndexPath
,有时不会。