【发布时间】:2013-04-23 06:07:09
【问题描述】:
我很想知道是否有人在比较 iPhone 应用程序的加载时间性能与 NIB 中布局的视图与完全以编程方式布局的视图(这里有一个类似的 question)进行比较。
完全以编程方式布局的视图真的比在 NIB 中布局的视图有任何优势吗?
【问题讨论】:
-
除了性能之外,如果您在团队中工作并且必须通过 git 合并内容,则以编程方式创建的视图更容易处理。
我很想知道是否有人在比较 iPhone 应用程序的加载时间性能与 NIB 中布局的视图与完全以编程方式布局的视图(这里有一个类似的 question)进行比较。
完全以编程方式布局的视图真的比在 NIB 中布局的视图有任何优势吗?
【问题讨论】:
根据 Apple 的说法,XIB 文件的加载时间比以编程方式构建 UI 的时间长。 在 WWDC 讲座中看到了这一点。
如果性能很重要,请在代码中而不是在 IB 中构建您的 UI。
【讨论】:
在代码上这样做有一些好处:
带笔尖:
关于性能,其实可以查this。
【讨论】:
当我开始学习 iOS 编程时,我是在 xib 文件中构建 UI。但是当我开发了一些项目后,我开始只是编写代码来实现我的 UI。
以编程方式构建 UI 有一些好处:
首先,通过编写代码,您可以清楚地记住视图层次结构,并且视图层次结构对于有效地实现您的 UI 非常重要。
其次,如果您的 UI 很复杂,例如带有一些动画或变换,您将从编写 UI 中受益匪浅。甚至有时候你可能不使用 UIView 来构建 UI,你可能会使用 CALayer 来完成一些 xib 文件无法构建的效果。
此外,当您习惯以编程方式构建 UI 时,您会喜欢上它,因为您只需在 .m 文件中编码,无需担心 xib 文件。
但是,如果您只是 iOS 编程的初学者,那么开始使用 xib 文件就可以了。
(Apple现在提供StoryBoard,我没学过,你可以学习一下,看看有没有新东西。)
【讨论】:
IMO 将两者结合起来是正确的选择。使用界面构建器来定义基本布局(即不会随时间发生太大变化的 xib)和视图的默认选项,其余的可以通过编程方式完成(特定的调整和效果)。这应该可以在一定程度上解决源代码控制和性能问题。
尽管一旦我们开始以编程方式创建视图,我们每次都继续这样做,却没有意识到在 Interface Builder 中可以用更少的努力来完成同样的事情。毕竟,如果它是我们正在构建的 GUI,最好有一个视觉参考。
【讨论】: