菜鸟教程小白 发表于 2022-12-11 19:34:01

ios - 我怎样才能提高性能


                                            <p><p>我的应用有一个基本上由复杂网格组成的 View 。大约有 1400 个 subview 。在“现代”设备上,到此 View 的过渡相当顺利 - 如果您正在寻找它,您会注意到轻微的延迟。
在 iPhone 6 等“旧设备”上,延迟更为明显。加载屏幕大约需要一两秒钟。 </p>

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

<p> View 和约束都在代码中实现 - 这里没有 Storyboard。我没有收到任何警告或错误。 View 基本上只包含具有不同背景的 View 本身和偶尔的标签 - 没有像图像或其他渲染密集型对象那样花哨的东西。 </p>

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

<p>我有没有办法测试哪些对象/ View /约束的渲染时间最长?我尝试使用时间分析器,但无法检测到任何缓慢的进程。或者这基本上只是这么多元素的包袱?</p>

<p>感谢您提供有关我可以查看的位置的任何提示
- 约瑟夫</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>自动布局很昂贵。您无法将它用于如此复杂的 View 。
所以不要使用自动布局。不要使用约束。</p>

<p>以编程方式执行所有布局代码
- (void)viewDidLayoutSubviews
(记得叫super)
设置 View 的框架。 </p>

<p>如果您不需要滚动、交互或旋转支持,您可以考虑将所有 UI 绘制到位图中,并仅显示位图。这是最快的方法。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 我怎样才能提高性能,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/48127514/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/48127514/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 我怎样才能提高性能