我能否通过减少调用 [CALayer 布局子视图] 来使我的表视图更流畅地移动,以及如何移动



根据时间配置文件,我发现我的应用程序由于调用[UITable layoutSubviews]而在[CALayer layoutSublayers]上浪费了太多时间。所以生成表格视图的动作并不流畅,每当第一次点击按钮时,我都会等待将近 2 秒钟,直到看到下一个视图。下一个视图的表视图中的每个单元格都有 8 个子视图,导致布局子视图占用太多时间。因此,我想知道如何优化此进度,并且我不想在其绘图中构建包含这 8 个子视图的自定义单元格:以避免布局子视图。谁能帮助我?

我的猜测是,你看到的是一种症状,而不是真正的问题。

我会等将近 2 秒钟,直到看到下一个视图

您描述的内容听起来像是首次尝试显示表视图时会预呈现表视图的所有单元格(导致大量布局成本)。
cellForRowAtIndexPath:中设置断点,添加声音操作+激活"评估后自动继续"以调试此问题。
它应该只被调用 10 次左右(取决于同时可见的行数)。

如果您在长列表中使用heightForRowAtIndexPath:,这可能是问题的根源(取决于您的实现)。在这种情况下,请考虑避免使用它。如果您的目标是iOS 7,请查看tableView:estimatedHeightForRowAtIndexPath:它可能会有所帮助。(链接:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html)。

最新更新