使用故事板的优缺点?

我已经写了一段时间的iOS应用程序,并逐渐从完全编程的UI到密集使用Interface Builder。 我现在正在考虑为我的一些新项目使用新的Storyboardingfunction,但我没有足够的经验或知识来计算这样做的优缺点。 有人可以提供一些关于什么时候使用Storyboarding的例子或信息,什么时候浪费时间?

故事板的优点

  • 这是一个很酷的方式来devise接口
  • 使用StoryBoardSegues来识别导航/模式关系
  • 如果你的应用程序支持多个设备,组织不同视图的好方法(通过故事板文件而不是命名等)
  • 很好的原型
  • 原型UITableViewCell可以节省时间

故事板的缺点

  • 这是一个运行时function,所以我相信它只在iOS 5中可用
  • StoryBoardSegues在我的经验中是僵化的,你可以使用prepareForSegue很多
  • 像IB一样,与其他显示引擎和工具箱不太友好
  • 很难分享一个视图或一组视图的devise – 您必须全部或全部发送

这些看起来有点肤浅,我想我一直没有多less想法……起初我是关于故事板的gung-ho,但是现在我已经回到了IB,甚至只是程序化的视图configuration…我越使用它们,我越喜欢它们,越觉得它们是噱头/浪费时间。

编辑

几年前我写了这个答案。 尽pipe有些观点可能不再相关(即它需要iOS 5+),但我仍然像以前一样留给后人。

过了一段时间,我的意见在故事板上没有改变。 正如其他人所提到的,如果您正在单独应用一个只有很less的视图进行pipe理的应用程序,那么它们就没有问题,但是它们会成为源代码控制和协作的真正痛苦。 另外,我更喜欢一个文件一个对象,故事板显然捆绑在一起(像IB一样,但程度较低)。

如果我正在编写一个应用程序,而且这个应用程序需要维护很长的时间,那么我会通过IB的程序化视图configuration,但是绝对是在故事板上的IB。

Storyboarding的另一个缺点就是没有提到,即使不存在冲突,合并也是非常困难的。

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

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

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

如果你是独奏程序员,你应该总是使用故事板。

我有一个和你类似的背景 – 我开始主要以编程方式构build我的iOS UI,因为IB不是真正用户友好的,但最近决定越来越多地使用IB,因为它更好地deviseUI,元素。

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

然而,如果你使用了很多你自己的UI元素/控件或者使用不同的“引擎”(cocos2d,OpenGL等)的东西,通常以编程方式生成UI会更好,因为这些“引擎”并没有真正与IB /故事板。

我已经通过从raywenderlich的网站上的教程学习故事板,并有很多关于故事板的东西。

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

故事板的优点:

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

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

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

4)如果你不得不使用别人的代码,你可以通过在短时间内观看故事板来更好地理解应用程序的stream程。

5)你可以设置iPhone 4和iPhone 5的用户界面,通过应用故事板的视网膜形状因子,而无需反复运行应用程序。

6)如果你正在做基于客户端的工作,那么有些客户希望看到应用程序的原型,然后开始开发它,在这里storyboard可以帮助你很多。

故事板的缺点:

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

2)我也遇到了一个难题,而从其他应用程序的视图复制到故事板。

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

通过阅读和理解的优点和缺点,你可以判断自己什么时候使用故事板。

一个字( )除了git冲突之外,故事板的最大缺点之一是两个或更多的人不可能工作。 而且如果项目变得如此之大,并且你有40个屏幕,如果你疯了足以在任何视图控制器中移动任何东西只有一个像素,你将有一个非常庞大的编译时间,你可以build立你的应用程序,并使其运行超过5分钟,当然,不要让我开始归档给一些特别的应用程序。

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