使用Storyboarding的优点和缺点?

时间:2012-02-20 12:04:58

标签: ios xcode cocoa-touch xcode-storyboard

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

6 个答案:

答案 0 :(得分:22)

故事板的优点

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

故事板的缺点

  • 这是一个运行时功能,所以我相信它仅适用于iOS 5
  • StoryBoardSegues在我的经历中有点僵硬,你可以大量使用prepareForSegue
  • 与IB一样,与其他显示引擎和工具包不太友好
  • 难以分享单个视图或一组视图的设计 - 您必须全部或全部发送

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

修改

几年前我写了这个答案。虽然有些观点可能不再相关(即需要iOS 5 +的事实),但我已经和以前一样为后人留下了它。

过了一段时间,我的意见在故事板上没有改变。正如其他人所提到的那样,如果你在一个只有很少观点来管理的应用程序上独自工作,那么它们就没问题了,但是它们在源代码控制方面变得非常痛苦。合作。另外,我更喜欢单文件一对象,故事板明显地将各种东西捆绑在一起(IB也是如此,但程度较小)。

如果我正在编写一个旨在维持任何严重时间的应用程序,我会选择IB上的程序化视图配置,但绝对是IB而不是故事板。

答案 1 :(得分:4)

未提及故事板的另一个缺点是,如果存在冲突,合并可能非常困难,如果不是不可能的话。

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

答案 2 :(得分:4)

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

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

如果您是独奏程序员,则应始终使用故事板。

答案 3 :(得分:2)

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

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

但是如果你使用很多自己的UI元素/控件或使用不同的“引擎”(cocos2d,OpenGL等),通常最好以编程方式生成UI,因为这些“引擎”并不是真的与IB / Storyboards集成。

答案 4 :(得分:2)

我按照raywenderlich网站上的教程学习故事板,故事板上有很多东西。

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

故事板的优点:

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

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

3)在UITableView的情况下,它可以帮助减少代码量,您可以使用原型单元格和静态单元格在故事板中设计TableView。

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

5)您可以通过应用故事板中的视网膜形状因子来设置iPhone 4和iPhone 5的用户界面,而无需一次又一次地运行应用程序。

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

故事板的缺点:

1)对于故事板,你需要一个专门用于iPad的大屏幕。

2)在将视图从其他应用程序复制到故事板时,我也遇到了困难。

3)当多个开发人员使用git repository处理同一个项目时,我在storyboard中也遇到了问题。

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

答案 5 :(得分:0)

一个字(不要) 除了git冲突之外,故事板的最大缺点之一是使两个或更多人无法处理它。但是如果项目变得如此之大并且你有+40个屏幕,如果你疯狂到足以在故事板中的任何视图控制器中只移动一个像素,你将有一个非常大的编译时间,你可以建立你的应用程序,并使其运行超过5分钟,当然不要让我开始存档,以提供应用程序的一个临时工具。

在经历了这种痛苦的经历之后,我完全回到了老式的黄金伟大的xib文件中,并在巨大的火灾中删除了故事板文件。