我正在尝试针对速度较慢的设备优化UITableViewController,并消除了导致tableview变慢的许多原因之后,我仍在尝试找出最后一个...
此屏幕快照来自仪器,显示了在不进行调用以获取heightForRowAtIndexPath
或cellForRowAtIndexPath
的情况下最昂贵的调用(反复上下滚动〜10px,而不会导致任何单元格脱离表格或被渲染)。
这是正常行为吗?如果页面内容未更改,为什么视图需要重新布局?
最佳答案
每次滚动时,都要更改contentOffset
。 contentOffset
更新bounds
,特别是其origin
。每个bounds
更改都会在下一个更新周期将接收器标记为需要布局。在这种情况下,要更新浮动子视图的frame
,例如滚动指示器,表页眉和页脚,……这是完全正常的行为,您无能为力。不用担心,您正在重新显示,而不是重新绘制。
关于ios - 为什么在滚动uitableviewcontroller时会调用layoutIfNeeded?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36408421/