【问题标题】:Creating Views programmatically VS. nib以编程方式创建视图 VS。笔尖
【发布时间】:2013-04-23 06:07:09
【问题描述】:

我很想知道是否有人在比较 iPhone 应用程序的加载时间性能与 NIB 中布局的视图与完全以编程方式布局的视图(这里有一个类似的 question)进行比较。

完全以编程方式布局的视图真的比在 NIB 中布局的视图有任何优势吗?

【问题讨论】:

  • 除了性能之外,如果您在团队中工作并且必须通过 git 合并内容,则以编程方式创建的视图更容易处理。

标签: ios uiview nib


【解决方案1】:

根据 Apple 的说法,XIB 文件的加载时间比以编程方式构建 UI 的时间长。 在 WWDC 讲座中看到了这一点。

如果性能很重要,请在代码中而不是在 IB 中构建您的 UI。

【讨论】:

  • 最好给出参考链接。
  • 具体是哪个视频我不记得了,但我可以找找。这与上一届 WWDC(2012 年)截然不同。
【解决方案2】:

在代码上这样做有一些好处:

  1. 最好与多人一起工作。提交到存储库时更容易解决冲突。
  2. 您依赖于您在代码中看到的内容,而不是隐藏在 nib 文件中的内容(您在不知情的情况下选择了一些讨厌的选项)。您拥有:所见即所得。

带笔尖:

  1. 我会说它的开发速度更快。
  2. 代码没有被界面的每一个细节“污染”。
  3. 我也会留下来,对于没有太多经验的人来说更容易。

关于性能,其实可以查this

【讨论】:

    【解决方案3】:

    当我开始学习 iOS 编程时,我是在 xib 文件中构建 UI。但是当我开发了一些项目后,我开始只是编写代码来实现我的 UI。

    以编程方式构建 UI 有一些好处:

    首先,通过编写代码,您可以清楚地记住视图层次结构,并且视图层次结构对于有效地实现您的 UI 非常重要。

    其次,如果您的 UI 很复杂,例如带有一些动画或变换,您将从编写 UI 中受益匪浅。甚至有时候你可能不使用 UIView 来构建 UI,你可能会使用 CALayer 来完成一些 xib 文件无法构建的效果。

    此外,当您习惯以编程方式构建 UI 时,您会喜欢上它,因为您只需在 .m 文件中编码,无需担心 xib 文件。

    但是,如果您只是 iOS 编程的初学者,那么开始使用 xib 文件就可以了。

    (Apple现在提供StoryBoard,我没学过,你可以学习一下,看看有没有新东西。)

    【讨论】:

    • 视图层次结构在界面构建器中也是可见的。尽管您不能通过代码完成所有事情,但完全忽略 IB 并不是正确的方法。当可以通过 IB 轻松完成时,我为什么要通过代码构建整个视图层次结构。
    • 其实通过代码,我们可以实现所有用IB构建的东西。只是哪种方法更有效。刚开始学习iOS编程的时候就喜欢IB,IB真的好学好用,但是当我开发更复杂的UI时,我觉得代码可以更有效率。 @Rakesh
    • 确保在代码中可以实现在 IB 中完成的一切。但只是它需要更多的努力(无论你打字多快。:))。我想说的是最有效的方法不会是唯一的 IB/仅代码方法。这将是两者的混合。我试图把我的想法变成一个答案。 @菲尼亚斯
    【解决方案4】:

    IMO 将两者结合起来是正确的选择。使用界面构建器来定义基本布局(即不会随时间发生太大变化的 xib)和视图的默认选项,其余的可以通过编程方式完成(特定的调整和效果)。这应该可以在一定程度上解决源代码控制和性能问题。

    尽管一旦我们开始以编程方式创建视图,我们每次都继续这样做,却没有意识到在 Interface Builder 中可以用更少的努力来完成同样的事情。毕竟,如果它是我们正在构建的 GUI,最好有一个视觉参考。

    【讨论】:

      猜你喜欢
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      • 2019-10-10
      • 2017-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多