我的应用有一个基本上由复杂网格组成的 View 。大约有 1400 个 subview 。在“现代”设备上,到此 View 的过渡相当顺利 - 如果您正在寻找它,您会注意到轻微的延迟。 在 iPhone 6 等“旧设备”上,延迟更为明显。加载屏幕大约需要一两秒钟。
我之前使用UIStackViews
来组织UIViews
,但是太慢了。现代设备需要大约 1 秒,而较旧的设备则需要 5 秒左右。我将整个布局更改为仅使用常规的旧布局约束来达到上述速度。
View 和约束都在代码中实现 - 这里没有 Storyboard。我没有收到任何警告或错误。 View 基本上只包含具有不同背景的 View 本身和偶尔的标签 - 没有像图像或其他渲染密集型对象那样花哨的东西。
我还尝试将视觉格式 NSLayoutConstraints
的数量减少到最低限度。
我有没有办法测试哪些对象/ View /约束的渲染时间最长?我尝试使用时间分析器,但无法检测到任何缓慢的进程。或者这基本上只是这么多元素的包袱?
感谢您提供有关我可以查看的位置的任何提示 - 约瑟夫
自动布局很昂贵。您无法将它用于如此复杂的 View 。 所以不要使用自动布局。不要使用约束。
以编程方式执行所有布局代码 - (void)viewDidLayoutSubviews (记得叫super) 设置 View 的框架。
如果您不需要滚动、交互或旋转支持,您可以考虑将所有 UI 绘制到位图中,并仅显示位图。这是最快的方法。
关于ios - 我怎样才能提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48127514/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |