使用故事板的优缺点是什么?

23

我已经写了一段时间的iOS应用程序,逐渐从完全使用编程方式进行UI开发转变为广泛使用Interface Builder。现在我正在考虑在一些新项目中使用新的Storyboarding功能,但我没有足够的经验或知识来计算这样做的优缺点。 有人可以给出一些关于何时使用Storyboarding带来回报以及何时是浪费时间的例子或信息吗?

6个回答

21

Storyboards的优点

  • 它是一种时髦的设计UI界面的方式
  • 使用StoryBoardSegues识别导航/模式关系
  • 如果您的应用程序支持多个设备,将不同的视图组织在不同的storyboard文件中而不是命名等,是一种很好的方式。
  • 适合原型制作
  • 原型制作UITableViewCell可以节省时间

Storyboards的缺点

  • 它是运行时功能,因此我认为只适用于iOS 5及以上版本
  • StoryBoardSegues在我的经验中有些固定,可能需要经常使用prepareForSegue
  • 与其他显示引擎和工具包不太友好,像IB一样
  • 难以共享单个视图或一组视图的设计 - 必须全部发送

这些看起来有点肤浅,我想我没有认真考虑过...一开始我对storyboard非常热衷,但现在我已经回到了IB甚至只是编程视图配置...我使用得越多,就越不喜欢它们,感觉它们越来越像一个噱头/浪费时间。

编辑

我写这篇答案已经有几年了。出于纪念的目的,我将其保持不变,尽管某些观点可能已不再相关(例如它需要iOS 5+)。

经过一段时间后,我的看法对storyboards并没有改变。正如其他人所提到的,如果你是在单独开发一个视图较少的应用程序,它们还可以;但与源代码控制和协作合作时,它们就成为一个真正的痛点。此外,我更喜欢一个文件一个对象,而storyboards显然捆绑在一起(IB也是,但程度较轻)。

如果我要编写一个打算长期维护的应用程序,我会选择编程式视图配置而不是IB,但一定会选择IB而不是storyboards。


++太棒了!感谢与我们分享。 - swiftBoy

4

Storyboarding存在的另一个缺点是,如果存在冲突,则合并可能非常困难甚至不可能。

更新:我还想到了一个问题,它将逻辑分散到两个地方。如果你的segue没有按照预期工作,可能是因为prepareForSegue中有误或者你错误地命名了segue。最终来说,以编程方式实现这些功能并不那么难。


4

在最新的 WWDC(2013)上,苹果的开发人员强烈推荐使用故事板和内置的 IB 工具来为您完成大部分代码,而不是手动编写代码,因为这样你更有可能避免过时的问题,并通过自动转换来利用功能更新。

唯一的缺点是,在故事板上允许 git 协作非常困难,因为每次提交都会导致冲突。

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


2

我通过raywenderlich网站的教程学习了storyboarding,其中有很多关于storyboard的内容。

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

Storyboard的优点:

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

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

3) 在UITableView中,您可以使用原型单元格和静态单元格在storyboard中设计表视图,从而帮助减少编写代码的量。

4) 如果您需要处理其他人的代码,则可以通过查看storyboard在短时间内更好地理解应用程序的流程。

5) 您可以通过从storyboard应用Retina格式来设置iPhone 4和iPhone 5的用户界面,而无需一遍又一遍地运行应用程序。

6) 如果您正在进行客户端工作,则某些客户想在开始开发之前看到应用程序的原型,在这种情况下,storyboard会对您有很大的帮助。

Storyboard的缺点:

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

2) 我在将视图从其他应用复制到storyboard时也遇到了困难。

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

通过阅读和理解这些优缺点,您可以自行判断何时使用storyboard。


2

我和你有类似的背景 - 我开始时主要通过编程构建我的iOS UI,因为IB不是很用户友好,但最近我决定越来越多地使用IB,因为它更适合设计UI,并且对于标准元素也能很好地工作。

随着新版Xcode的推出,我转向了Storyboard,因为它们提供了应用程序的完整视图。可以在单个文件中生成完整的UI(包括所有视图),这可用于原型设计,并且我可以在编写第一行代码之前让同事查看。与使用Photoshop或类似工具进行设计相比,它要好得多且更容易。

但是,如果您使用大量自己的UI元素/控件或使用不同的“引擎”(cocos2d、OpenGL等)的内容,则通常最好通过编程生成UI,因为这些“引擎”并没有真正与IB / Storyboards集成。


0

一个词(不要

故事板的最大缺点之一是除了导致两个或更多人无法共同使用它的git冲突之外,如果项目变得非常庞大,你有40多个屏幕,如果你足够疯狂,在故事板中的任何视图控制器中移动任何东西只需一个像素,你将需要非常长的编译时间,可能需要超过5分钟才能构建应用程序,当然,别让我开始谈论归档以便给某人提供应用程序的adhoc。

在这种痛苦的经历之后,我完全回到了老式的xib文件,并在一个巨大的火焰庆典中删除了故事板文件。


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