iOS Storyboards 我应该使用它们吗?

11

我是iOS开发的新手(还没有创建任何应用程序),但我向市场上评分非常高的朋友征求建议。他说不要使用storyboards。

尽管我非常想听从他的建议,但它们似乎非常有帮助。

  • 这是否会导致我的应用程序在未来出现问题?
  • 是否有任何原因我可能不想使用storyboards?

作为一个来自Android背景的人,我不明白为什么我应该使用它们。


1
我认为你应该问“何时应该使用故事板?”而不是“是否应该使用故事板?” - Anton
是的,我看到了那个问题,但是觉得它没有帮助。现在Anton提出来了,我可能只是问错了问题。我想我会看看这个问题的解决情况。此外,可能是因为我不知道XIB是什么,所以我没有理解其他问题。 - EGHDK
这完全取决于你,无论你喜欢哪种更好。 - holex
6个回答

8
我建议不要使用storyboards或Interface Builder。
  • 如果你花更多时间使用Objective-C,你会更快地学习它。在IB和代码之间切换,你需要学习两个东西。后面频繁切换上下文会拖慢你的速度。
  • Nibs和storyboards是大型XML文件,在源代码控制中无法很好地使用;如果同时与别人共同工作一个文件,会出现合并冲突。
  • 在IB中无法一次查看所有事情,因此难以跟踪排除布局问题等问题。
  • 在IB中无法像在代码中那样搜索或替换。
  • Nibs和storyboards将你的视图逻辑放在控制器中。这是否是问题取决于你是MVC纯粹主义者的程度。
  • 如果你想将应用程序从iOS移植到Android或从Android移植到iOS,IB将使这变得更加困难。
这都是从经验中得出的结论。我最开始使用IB(Storyboard还没有推出)运行小型软件团队开发iOS应用程序,但在一年内,它引起了很多问题,以至于我不得不禁止其使用。我们停止使用IB后,我们的生产力大大提高。

2
点1 - 在Xcode中使用标签来保持任务分离,一个标签用于代码,一个标签用于故事板。点2 - 自Xcode 5以来不再相关,是的,它们有点麻烦,但已经修复了。点3 - 不确定这是指什么。我没有问题看到东西,特别是当它们在屏幕上可视化绘制时。绝对比解释代码容易得多。点4 - 是的,你可以,它们是XML文件,你可以轻松搜索和替换,但通过重构你不需要这样做。点5 - 不,他们不会。点6 - 我正在编写iOS应用程序而不是Android。 - Fogmeister
3
如果有任何东西,第五点和你说的完全相反。IB可以将你所有的视图放在一个地方...即视图中。通过在代码中完成所有操作,你只是为了设置视图而向你的控制器添加了额外的代码。这些听起来像是某个人对变化不喜欢并且从未回头的观点。是的,Interface Builder一开始很麻烦,但现在已经改进了许多。我在我的所有应用程序中都使用它。 - Fogmeister
4
这是错误的建议。在业界中,人们肯定在使用界面构建器。我认为故事板目前更受欢迎。如果您不学习这些技能,就无法成为现代iOS开发者。 - Matt
第六点:你不应该为不同的平台复制完全相同的布局。 - elimirks

8
我倾向于除了快速原型之外,避免使用storyboards。如果您知道您有一个非常简单的应用程序,不会变得复杂,并且您是唯一的开发人员,则storyboards可能是可以接受的。
以下是一些博客文章,详细介绍使用storyboards时的一些痛点:

以上两种方法都有点过时,但我相信相关要点仍然是正确的。

请注意,理论上您需要使用故事板来获取静态表格,这可能很有用。为了获得此效益,您可以将仅包含静态表格的内容放入故事板文件中(注:您可以在应用中拥有多个故事板文件),然后使用xibs或代码创建其余的UI。


4
我认为这个问题并没有一个确切的答案。任何技术决策都有利弊,这个也不例外。
优点:
  • 视觉效果好,可以更快地了解应用程序的外观
  • 代码量较少
  • 自动布局可能更容易
  • 不是非此即彼。您可以在Storyboards中构建“基础”,然后用代码完成它
缺点:
  • 一个大而复杂的XML文件会导致合并冲突变得非常棘手
  • 比代码灵活性低(没有继承等)
  • 如果您的应用程序有很多屏幕,使用单个Storyboard可能会变得相当困难,除非您有一个庞大的屏幕!

4

我认为使用Storyboard并不重要,最重要的是你的应用程序质量、美观和速度等方面。 Storyboard对于初学者来说非常好,可以缩短设计时间并帮助理解。 但当你成为专业开发人员时,你会更喜欢通过编写代码来绘制界面,因为打字比图形更快。


2
我认为,对于初学者来说,故事板可以是一个很好的入门方式,但我不认为“专业人士”更喜欢通过代码设置他们的界面,也不总是比图形化方法更快。对于iOS 5+应用程序,故事板可以使设计应用程序的界面和流程变得更加容易,具体取决于应用程序的需求。 - Anton

3

这取决于你自己。如果你独自开发应用程序,那么故事板非常有用。如果你在团队中工作,最好使用.xibs,因为与故事板相比,在svn合并时问题较少。


2

这是一个非常宽泛的问题。在开发应用程序时,有时候使用故事板会很方便,但有时候也可能会带来麻烦。这取决于您的应用程序的要求和兼容性需求。

查看以下答案,了解何时使用故事板以及何时使用XIB:

何时使用故事板以及何时使用XIB


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接