菜鸟教程小白 发表于 2022-12-12 10:51:16

ios - 为什么在滚动 uitableviewcontroller 时会调用 layoutIfNeeded?


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

<p> <a href="/image/p7IiG.png" rel="noreferrer noopener nofollow"><img src="/image/p7IiG.png" alt="enter image description here"/></a>
此屏幕截图来自仪器,显示了最昂贵的调用,在没有调用获取 <code>heightForRowAtIndexPath</code> 或 <code>cellForRowAtIndexPath</code> (反复上下滚动约 10px 而不导致任何单元格离开表格,或被渲染)。 </p>

<p>这是正常行为吗?如果页面内容没有变化,为什么 View 需要重新布局?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>每次滚动时,都会更改 <code>contentOffset</code>。 <code>contentOffset</code> 更新 <code>bounds</code>,特别是它的 <code>origin</code>。每个 <code>bounds</code> 更改都标记接收器,以便在下一个更新周期中需要布局。在这种情况下,要更新 floatsubview 的 <code>frame</code>,如滚动指示器、表格页眉和页脚,... 这是完全正常的行为,您无能为力。不用担心,您是在重新显示,而不是在重新绘制。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 为什么在滚动 uitableviewcontroller 时会调用 layoutIfNeeded?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/36408421/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/36408421/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 为什么在滚动 uitableviewcontroller 时会调用 layoutIfNeeded?