我怎样才能提高性能

How can I increase performance

我的应用程序有一个基本上由复杂网格组成的视图。大约有 1400 个子视图。在 "modern" 设备上,到此视图的转换相当顺利 - 如果您正在寻找它,您会注意到轻微的延迟。 在 "older devices" 上,例如 iPhone 6,延迟更为明显。加载屏幕大约需要一两秒钟。

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

视图和约束都在代码中实现 - 这里没有故事板。我没有收到任何警告或错误。这些视图基本上仅由具有不同背景的视图本身和偶尔的标签组成——没有像图像或其他渲染密集型对象那样花哨的东西。

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

有什么方法可以让我测试哪些 objects/views/constraints 渲染时间最长?我尝试使用时间分析器,但无法检测到任何缓慢的进程。或者这基本上只是这么多对象的包袱?

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

自动布局很昂贵。您无法将它用于如此复杂的视图。 所以不要使用自动布局。不要使用约束。

以编程方式完成所有布局代码 - (void)viewDidLayoutSubviews (记得叫super) 设置视图的框架。

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