例如,tableView 中有 100 行,在heightForRowAtIndexPath:
显示第 100 行之前已经执行。
为什么?为了计算contentSize
tableView?
谢谢!
例如,tableView 中有 100 行,在heightForRowAtIndexPath:
显示第 100 行之前已经执行。
为什么?为了计算contentSize
tableView?
谢谢!
来自苹果的文档:
每次显示表视图时,它都会在其每一行的委托上调用 tableView:heightForRowAtIndexPath:
所以是的,它在显示单元格之前被调用。如果您考虑一下,如果表格反过来,它将创建一个具有标准高度的单元格,将内容放入其中,获取实际高度,然后调整单元格的大小/移动。那不是很好。
这可能会导致性能问题,因此只有在具有不同高度的单元格时才应使用它:
该方法允许委托指定具有不同高度的行。如果实现了此方法,它返回的值将覆盖为给定行的 UITableView 的 rowHeight 属性指定的值。
使用
tableView:heightForRowAtIndexPath:
而不是 rowHeight 属性会影响性能。每次显示表视图时,它tableView:heightForRowAtIndexPath:
都会为其每一行调用委托,这可能会导致表视图具有大量行(大约 1000 或更多)时出现严重的性能问题。
否则,如果所有单元格的高度相同,请使用该rowHeight
属性,并且不要实现tableView:heightForRowAtIndexPath:
.