首页 > 解决方案 > 测量在 Xcode 中渲染 UIView 的 CPU 使用率

问题描述

我对 Interface Builder 中的 nib 有一个看法。它在笔尖中有几个UIStackViews,我使用它是因为它很容易对齐 UI 元素。一位同事建议我不要使用UIStackViews,因为从计算的角度来看它们“昂贵”。另一种方法是手动为单个元素设置约束。

我可以使用什么 Xcode 工具来验证我同事的断言,我将如何使用它?我发现的最好的东西是this,但我希望得到更细化的东西。有问题的笔尖是UITableViewCell.

标签: iosxcodeinterface-builder

解决方案


从计算的角度来看,它们是“昂贵的”

好的,我现在将尝试证明这完全是假的。

堆栈视图并不神奇。堆栈视图不执行任何特殊的运行时调整。堆栈视图只是一个约束制造者,不多也不少。你也是。堆栈视图所做的一切,您都可以做到。堆栈视图的结果约束与您自己创建的约束完全相同(假设您甚至知道如何创建)。因此,约束本身并不会因为堆栈视图制造它们而更加昂贵。

那么让我们来谈谈约束的初始生成。好吧,堆栈视图通过死记硬背生成其约束。这只是一种简单的公式化方法,它基于堆栈视图的设置和(在某些情况下)排列的子视图的固有内容大小等已经给出的参数。因此,堆栈视图实际上不需要任何时间来吐出它生成的约束,并且只需执行一次。

因此,如果约束的生成并不昂贵,并且如果约束本身也不昂贵,那么费用在哪里?它无处可去。

有人可能会争辩说,对于特定期望的结果,使用堆栈视图是不必要的复杂或懒惰,因此自己制定约束会“更好”;但在我看来,“昂贵”似乎并不是可以针对堆栈视图提出的真正指控。


推荐阅读