ios - 使用 Storyboard的优点和缺点?

标签 ios xcode cocoa-touch xcode-storyboard

<分区>

我编写 iOS 应用程序已有一段时间了,逐渐从完全以编程方式编写 UI 转变为大量使用 Interface Builder。我现在正在考虑为我的一些新项目使用新的 Storyboarding 功能,但我没有足够的经验或知识来计算这样做的优缺点。 任何人都可以提供一些示例或信息,说明什么时候使用 Storyboarding 是有返回的,什么时候是浪费时间?

最佳答案

Storyboard的优势

  • 这很酷 - 优雅的界面设计方式
  • 使用 StoryBoardSegues 来识别导航/模式关系
  • 如果您的应用支持多种设备,组织不同 View 的好方法(通过 Storyboard文件而不是命名等)
  • 非常适合制作原型(prototype)
  • 原型(prototype)UITableViewCell可以节省时间

Storyboard的缺点

  • 这是一个运行时特性,所以我相信它只在 iOS 5 中可用
  • StoryBoardSegues 在我的经验中有点死板,你可能会经常使用 prepareForSegue
  • 和IB一样,对其他展示引擎和工具包不是很友好
  • 难以共享单个 View 或一组 View 的设计 - 您必须全部发送或不发送任何内容

这些看起来有点肤浅,我想我没有考虑太多......起初我对 Storyboard很感兴趣,但现在我已经恢复到 IB 甚至只是编程 View 配置......我使用它们的次数越多,我就越不喜欢它们,并且越觉得它们像是一种噱头/浪费时间。

编辑

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

一段时间后,我对 Storyboard的看法没有改变。正如其他人所提到的,如果您在一个几乎没有要管理的 View 的应用程序上单独工作,它们是可以的,但是它们会成为源代码控制和协作的真正痛苦。此外,我更喜欢一个文件一个对象, Storyboard显然将东西捆绑在一起(IB 也是如此,但程度较轻)。

如果我正在编写一个需要长期维护的应用程序,我会通过 IB 使用编程 View 配置,但绝对是通过 Storyboard使用 IB。

关于ios - 使用 Storyboard的优点和缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9360826/

相关文章:

ios - UILocalNotification 2 分钟后重复提醒

ios - ld : framework not found MCCMerchant_sandbox

objective-c - 如何从 UIColor 对象中获取红绿蓝 (RGB) 和 alpha?

ios - 为什么 outlet 不能在 initWithCoder 中初始化?

ios - App Extension 是否可以在更新后的应用程序首次打开之前打开?

xcode - 在 Spritekit Swift 中停止音频

arrays - swift :changing the content of an array gives me an error

iphone - 如何估算处理时间?

iphone - 在什么情况下,在访问实例变量时放弃使用 self 是个好主意?

ios - 一个项目中多个 UIImage+ImageEffects 文件