我正在尝试针对速度较慢的设备优化UITableViewController,并消除了导致tableview变慢的许多原因之后,我仍在尝试找出最后一个...

ios - 为什么在滚动uitableviewcontroller时会调用layoutIfNeeded?-LMLPHP
此屏幕快照来自仪器,显示了在不进行调用以获取heightForRowAtIndexPathcellForRowAtIndexPath的情况下最昂贵的调用(反复上下滚动〜10px,而不会导致任何单元格脱离表格或被渲染)。

这是正常行为吗?如果页面内容未更改,为什么视图需要重新布局?

最佳答案

每次滚动时,都要更改contentOffsetcontentOffset更新bounds,特别是其origin。每个bounds更改都会在下一个更新周期将接收器标记为需要布局。在这种情况下,要更新浮动子视图的frame,例如滚动指示器,表页眉和页脚,……这是完全正常的行为,您无能为力。不用担心,您正在重新显示,而不是重新绘制。

关于ios - 为什么在滚动uitableviewcontroller时会调用layoutIfNeeded?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36408421/

10-13 08:08
查看更多