OGeek|极客世界-中国程序员成长平台

标题: ios - 为什么在滚动 uitableviewcontroller 时会调用 layoutIfNeeded? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 10:51
标题: ios - 为什么在滚动 uitableviewcontroller 时会调用 layoutIfNeeded?

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

enter image description here 此屏幕截图来自仪器,显示了最昂贵的调用,在没有调用获取 heightForRowAtIndexPathcellForRowAtIndexPath (反复上下滚动约 10px 而不导致任何单元格离开表格,或被渲染)。

这是正常行为吗?如果页面内容没有变化,为什么 View 需要重新布局?



Best Answer-推荐答案


每次滚动时,都会更改 contentOffsetcontentOffset 更新 bounds,特别是它的 origin。每个 bounds 更改都标记接收器,以便在下一个更新周期中需要布局。在这种情况下,要更新 float subview 的 frame,如滚动指示器、表格页眉和页脚,... 这是完全正常的行为,您无能为力。不用担心,您是在重新显示,而不是在重新绘制。

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






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4