23

我已经编写了一段时间的 iOS 应用程序,并逐渐从完全以编程方式编写 UI 到密集使用 Interface Builder。我现在正在考虑在我的一些新项目中使用新的故事板功能,但我没有足够的经验或知识来计算这样做的优缺点。 任何人都可以提供一些示例或信息,说明使用故事板何时获得回报以及何时浪费时间?

4

6 回答 6

22

故事板的优点

  • 很酷 - 设计界面的温和方式
  • 用于StoryBoardSegues识别导航/模态关系
  • 如果您的应用程序支持多种设备,那么组织不同视图的好方法(通过故事板文件而不是命名等)
  • 很适合做原型
  • 原型UITableViewCell可以节省时间

故事板的缺点

  • 这是一个运行时特性,所以我相信它只在 iOS 5 中可用
  • StoryBoardSegues根据我的经验,有点僵硬,你可以利用prepareForSegue很多
  • 和 IB 一样,对其他显示引擎和工具包不太友好
  • 很难为单个视图或一组视图共享设计 - 您必须全部发送或不发送

这些看起来有点肤浅,我想我没有考虑太多......起初我对故事板很感兴趣,但现在我已经恢复到 IB 甚至只是程序化视图配置......使用它们,我越不喜欢它们,就越觉得它们是噱头/浪费时间。

编辑

几年前我写了这个答案。尽管有些点可能不再相关(即它需要 iOS 5+ 的事实),但我已将其保留为后代。

一段时间后,我对故事板的看法没有改变。正如其他人所提到的,如果您单独开发一个需要管理的视图很少的应用程序,它们还可以,但是对于源代码控制和协作来说,它们会成为真正的痛苦。此外,我更喜欢一个文件一个对象,故事板显然将东西捆绑在一起(就像 IB 一样,但程度较小)。

如果我正在编写一个打算长期维护的应用程序,我会使用 IB 上的程序化视图配置,但绝对是 IB 上的故事板。

于 2012-02-20T22:02:58.947 回答
4

没有提到 Storyboard 的另一个缺点是,如果存在冲突,即使不是不可能,合并也会非常困难。

更新:我还想到它把逻辑放在两个地方。如果你的 segue 没有做正确的事情,可能是因为 prepareForSegue 中的错误,或者可能是因为你错误地命名了你的 segue。最后,以编程方式做事并不难。

于 2013-01-24T23:02:51.143 回答
4

在最新的 WWDC (2013) Apple Devs 强烈建议使用故事板和内置的 IB 东西来为您完成大部分代码,而不是手动编写,因为您更有可能避免弃用并通过自动转换利用功能更新.

唯一的缺点是难以在故事板上进行 git 协作,因为几乎每次提交都会有冲突。

如果你是一个单独的程序员,你应该总是使用故事板。

于 2013-08-01T17:36:19.047 回答
2

我和你有相似的背景 - 我开始主要以编程方式构建我的 iOS UI,因为 IB 并不是真正的用户友好,但最近决定越来越多地使用 IB,因为它更适合设计 UI 并且适用于标准 -元素。

使用新的 Xcode 我切换到 Storyboard,因为它们提供了应用程序的完整视图。可以在单个文件中生成完整的 UI(包含所有视图),该文件可用于原型设计,并且我可以在编写第一行代码之前查看我的同事。它比使用 Photoshop 或类似工具进行设计要好得多,也容易得多。

但是,如果您使用大量自己的 UI 元素/控件或使用不同“引擎”(cocos2d、OpenGL 等)的东西,通常最好以编程方式生成 UI,因为这些“引擎”并未真正与 IB 集成/故事板。

于 2012-02-20T21:50:12.357 回答
2

我已经按照 raywenderlich 网站上的教程学习了故事板,并且有很多关于故事板的内容。

这是网站的链接:http ://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

故事板的优点:

1) 在开始开发应用程序之前,您可以看到应用程序的所有屏幕。

2)您可以直观地看到每个屏幕之间的关系。

3)它可以帮助减少代码量,特别是在 UITableView 的情况下,您可以使用原型单元格和静态单元格在情节提要中设计您的 TableView。

4)如果您必须编写其他代码,您可以通过在短时间内查看故事板来更好地了解应用程序的流程。

5) 您可以通过应用 Storyboard 中的 Retina 外形来设置 iPhone 4 和 iPhone 5 的用户界面,而无需一次又一次地运行应用程序。

6) 如果你在做基于客户的工作,那么一些客户希望在开始开发之前看到应用程序的原型,这里的故事板可以帮助你很多。

故事板的缺点:

1)对于情节提要,您将需要一个大屏幕,特别是在 iPad 的情况下。

2) 在将视图从其他应用程序复制到情节提要时,我也遇到了困难。

3) 当多个开发人员使用 git 存储库在同一个项目上工作时,我也遇到了故事板的问题。

通过阅读和了解优点和缺点,您可以判断自己何时使用故事板。

于 2013-08-01T19:36:31.827 回答
0

一个词(不要) 故事板的最大缺点之一,除了 git 冲突使两个或更多人无法工作之外。但是,如果项目变得如此之大,并且您有 +40 个屏幕,如果您足够疯狂,可以在情节提要中的任何视图控制器中仅移动一个像素,那么您将有一个非常巨大的编译时间,您可以构建您的app 并让它在 5 分钟以上运行,当然不要让我从归档开始给一些 app 的 adhoc 。

在这次痛苦的经历之后,我完全回到了旧的 goldy great xib 文件,并在一场盛大的火灾庆祝活动中删除了故事板文件。

于 2015-08-19T16:22:25.210 回答