故事板与 Xibs - iOS9

Storyboards vs. Xibs - iOS9

我知道这个问题已经被问了很多次了,但是 iOS9 我仍然不清楚该怎么做。首先,这是我从所有可用数据中推测出的内容:

这两件事的性能方面是什么。我的应用基本上如下:

对于这些视图控制器中的每一个,为它们中的每一个创建故事板与为它们中的每一个创建 xib 的性能是什么。更重要的是,什么是布置我提到的应用程序的好方法。

听起来 Storyboard 很适合您当前的项目。然而,根据我的经验,Xibs 和 Storyboards 在现实世界中存在问题,原因如下:

  1. 开发人员之间的差异非常大,因此作为一个团队构建好的故事板非常棘手

  2. 黑匣子,因此它们需要大量的知识才能掌握(难以置信的隐藏行为)。文档中仅涵盖了最表面的语义。

  3. 拆分后国际化变得更加困难,特别是如果您有未包含在 Storyboard/Xib.

  4. 中的国际化消息
  5. 向后兼容性每年都会中断/随着时间的推移保证弃用。如果您试图保持与旧设备的兼容性,这尤其困难。

只要有两个以上的开发人员开始接触我们的代码,我们就会重写所有内容以完全避免 Storyboard 和 Xibs,并且我们变得更有效率。

如果您必须处理这些现实世界中的任何情况,我衷心建议您以编程方式创建所有视图。甚至有一个应用程序可以使这更容易(并且更具可扩展性)。我与这家公司或产品没有任何关系,但它确实是一个更好的解决方案。

http://www.paintcodeapp.com/

您肯定想使用故事板来布置视图控制器 - 仅仅是因为您可以访问 XIB 编辑器不会给您的 topLayoutGuidebottomLayoutGuide

对于其他视图,这是一个偏好问题。我倾向于将 XIB 用于 table 视图单元格,因为我倾向于在不同的屏幕上重复使用它们并且更喜欢将它们放在自己的文件中。

我实际上建议尽可能不要手动编写视图代码,因为阅读和弄清楚视图的布局要困难得多,尤其是对于最初没有编写代码的开发人员!对于简单的、动态大小的东西,这可能没问题,但是如果你试图根据大小 class 来布置具有不同约束的视图控制器,它最终会有点混乱。

是的,处理这些文件的合并冲突很痛苦,但是使用 iOS9 您可以使用视图控制器引用更轻松地将视图控制器拆分到不同的故事板中。就我个人而言,我发现合并 storyboards/XIBs 带来的不便是必须用代码编写所有内容的次要弊端。