我正在尝试针对较慢的设备优化 UITableViewController,在消除了 tableview 可能缓慢的许多原因之后,我仍在尝试找出最后一个......
此屏幕截图来自工具,显示了在没有调用来获取 heightForRowAtIndexPath
或 cellForRowAtIndexPath
的时间内最昂贵的调用(反复上下滚动约 10px,不会导致任何结果)单元格离开表格,或进行渲染)。
这是正常行为吗?如果页面内容没有改变,为什么 View 需要重新布局?
最佳答案
每次滚动时,都会更改 contentOffset
。 contentOffset
更新 bounds
,特别是它的origin
。每个bounds
变化都标志着下一个更新周期中布局需求的接收者。在这种情况下,要更新 float subview 的框架,例如滚动指示器、表格页眉和页脚……这是完全正常的行为,您对此无能为力。别担心,您正在重新显示,而不是重新绘制。
关于ios - 为什么在滚动 uitableviewcontroller 时会调用layoutIfNeeded?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36408421/