Ios 如何触发tableView';调用viewDidLayoutSubviews后的索引路径中的行高度?

Ios 如何触发tableView';调用viewDidLayoutSubviews后的索引路径中的行高度?,ios,uitableview,layoutsubviews,Ios,Uitableview,Layoutsubviews,tableViewCell包含viewController,其高度在tableView完成视图布局后计算。因此,我需要通过调用heightforrowatinexpath方法触发tableView再次请求行的高度 我已经尝试了setNeedsLayout,它不起作用,系统不会调用heightforrowatinexpath方法 reloadData或reloadRowsAtIndexPaths不是一个好的选择,因为它将重新加载所有单元格和单元格中内置的所有viewController,并且再次在

tableViewCell
包含viewController,其高度在tableView完成视图布局后计算。因此,我需要通过调用
heightforrowatinexpath
方法触发
tableView
再次请求行的高度

我已经尝试了
setNeedsLayout
,它不起作用,系统不会调用
heightforrowatinexpath
方法

reloadData
reloadRowsAtIndexPaths
不是一个好的选择,因为它将重新加载所有单元格和单元格中内置的所有viewController,并且再次在viewController完成布局过程并调用
viewDidLayoutSubviews
时,将再次调用
reloadData
,所以这是一个无限循环


我正在测试
tableView.beginUpdates()tableView.endUpdates()
空更新操作。有时它会触发索引路径中的行高度,有时则不会

heightForRowAtIndexPath:
是协议的一部分
UITableViewDelegate
,在执行以下操作时会被调用:
[tableView重新加载数据]


setNeedsLayout
是一种
UIView
的方法,它会导致视图重新绘制自身,但不会触发
tableView
来更新自身

您可以在UIView中测试setNeedsDisplay,这将重新绘制视图。但是setNeedsLayout用于布局子视图(位置和大小)。如果重新绘制,大小将从委托函数重新获取


如果只需要更新某些单元格,则可以使用
(void)重新加载RowsatindExpaths:(NSArray*)InExpaths with RowAnimation:(UITableViewRowAnimation)animation
。但是如果你想改变你的行的高度,你必须调用其中任何一个…:/你能给我看些代码吗,也许会有帮助。如果您通过调用
reloadData
在无限循环中运行,听起来您的代码可能有问题,也许我可以帮助您:)