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
在无限循环中运行,听起来您的代码可能有问题,也许我可以帮助您:)