我的应用程序的视图基本上由一个复杂的网格组成。大约有1400个子视图。在“现代”设备上,到该视图的过渡相当平稳-如果您正在寻找它,将会注意到一些延迟。
在“旧设备”(例如iPhone 6)上,延迟更加明显。屏幕加载大约需要一到两秒钟。

我以前使用UIStackViews来组织UIViews,但这太慢了。现代设备大约需要5秒左右的时间,而旧设备大约需要1秒钟。我将整个布局更改为仅与常规的旧布局约束一起使用,以实现上述速度。

视图和约束都以代码实现-这里没有情节提要。我没有收到任何警告或错误。视图基本上仅由具有不同背景和偶然标签的视图本身组成,没有像图像或其他渲染密集对象那样的奇特功能。

我还尝试将视觉格式NSLayoutConstraints的数量减少到最低限度。

我有办法测试哪些对象/视图/约束花费最多的时间来渲染吗?我尝试使用时间分析器,但无法检测到任何缓慢的过程。还是这基本上就是这么多物品的包??

感谢您提供有关我可以在哪里看的提示
- 约瑟夫

最佳答案

自动布局很昂贵。您无法将其用于如此复杂的视图。
因此,请勿使用自动版式。不要使用约束。

以编程方式在
-(void)viewDidLayoutSubviews
(记住叫 super )
设置视图框架。

如果不需要滚动,交互或旋转支持,则可以考虑将所有UI绘制到位图中,并仅显示位图。这是最快的方法。

关于ios - 我如何提高性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48127514/

10-09 15:06