故事板与Xibs - iOS9

时间:2015-10-12 22:45:26

标签: ios iphone xcode uistoryboard xib

我知道这个问题已经被提了很多,但它是iOS 9,我仍然不知道该怎么做。对于初学者来说,这似乎是我从所有可用数据中推测的:

  • 故事板让您创建segues。 [我从未成为这个答案的忠实粉丝,因为segues通常是为我创建UI布局中最难以处理的部分。]
  • Xibs可以让您创建多个顶级视图。 (Storyboards vs. the old XIB way)[我不认为我曾经使用过这么多,虽然看起来很有帮助。]
  • 故事板 - 创建UITableViewCells更容易。 [在我看来,为单元格创建xib更简洁,只需在cellForRowAtIndexPath中调用它们。]
  • 故事板可以变成一个难以编辑的巨型超大质量文件。 [我已经看到这种情况在实践中发生,这是一个很大的缺点,但同时......]
  • 故事板允许您在一个地方安排所有视图,同时显示布局。 [这对我来说似乎是一个很大的帮助。但是,多年来我发现在代码中这样做更容易。这让我想到了最后一个问题。]

这两件事的表现方面是什么?我的应用程序基本上如下:

  • 互连视图控制器的顶级层次结构,不超过5个。
  • 大量不同的独立视图控制器,范围从滚动视图到TableViews到静态图像视图。
  • Autolayout,尺寸等级,作品。

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

2 个答案:

答案 0 :(得分:3)

您肯定希望使用故事板来布局视图控制器 - 只是因为您可以访问XIB编辑器不会提供给您的topLayoutGuidebottomLayoutGuide

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

我实际上建议不要在可能的情况下手动编写视图代码,因为它更难以阅读并弄清楚如何布局视图,特别是对于最初没有编写代码的开发人员!对于简单的,动态大小的东西,这可以很好,但是如果你试图根据大小类布局具有不同约束的视图控制器,那么它将会变得有点混乱。

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

答案 1 :(得分:1)

听起来,故事板对于您当前的项目来说是正确的。但是,我的经验是Xibs和Storyboard在现实世界中存在问题,原因如下:

  1. 从开发人员到开发人员非常特殊,因此以团队形式构建优秀的故事板非常棘手

  2. 黑匣子,所以他们需要掌握大量的知识(难以置信的隐藏行为)。文档中仅介绍了最肤浅的语义。

  3. 通过分割国际化变得更加困难,特别是如果你有未包含在Storyboard / Xib中的国际化消息。

  4. 向后兼容性每年中断/随着时间的推移保证弃用。如果您尝试保持与旧设备的兼容性,这将特别困难。

  5. 一旦两个以上的开发人员开始接触我们的代码,我们就重写了所有内容以完全避免使用Storyboard和Xibs,并且我们的工作效率提高了。

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

    http://www.paintcodeapp.com/