【问题标题】:What is the reason for storyboards?故事板的原因是什么?
【发布时间】:2014-09-10 01:34:26
【问题描述】:

iOS 新手,想知道是否有人可以解释故事板的要点。

如果我创建一个视图控制器并以编程方式添加到它,我需要故事板做什么?

是否仅适用于自定义视图?自定义表?等等

谢谢。

【问题讨论】:

  • 而不是 xib 文件...如果您不使用故事板或 xibs 而只是一般地制作视图怎么办。
  • 您阅读接受的答案了吗?我认为它回答了你的问题(除非你真的在问声明性 UI 的意义何在,我相信已经有很多问题了)
  • 从头开始创建视图使得调试图形问题变得极其困难。你能想象一个复杂的 VC 有多个嵌套视图,它们都有不同的框架吗?祝你编辑这些像素好运。以编程方式逐个像素地创建对象视图的唯一原因是,如果您在一个大型团队中并且 GIT/SVN 冲突是一个问题。 Storyboards/XIB 真的很讨厌被打开,并且经常会通过在 xCode 中查看它来引起更改
  • 好吧,这很有道理。谢谢

标签: ios storyboard


【解决方案1】:

来自苹果的Document

故事板 故事板是设计应用程序用户界面的推荐方式。故事板让您可以在一个地方设计整个用户界面,以便您可以查看所有视图和视图控制器并了解它们如何协同工作。故事板的一个重要部分是定义转场的能力,转场是从一个视图控制器到另一个视图控制器的转换。除了内容之外,这些转换还允许您捕获用户界面的流程。您可以在 Xcode 中直观地定义这些转换,或以编程方式启动它们。

您可以使用单个故事板文件来存储应用的所有视图 控制器和视图,或者您可以使用多个视图故事板 组织界面的各个部分。在构建时,Xcode 采用 故事板文件的内容并将其分成离散的部分 可以单独加载以获得更好的性能。您的应用永远不会 需要直接操作这些部分。 UIKit 框架 提供方便的类来访问 a 的内容 来自您的代码的故事板。

有关使用故事板设计界面的更多信息, 请参阅 Xcode 概述。有关如何访问情节提要的信息 从您的代码中,请参阅 UIStoryboard 类参考。

【讨论】:

  • 控制器是否必须有情节提要视图?您可以一般地制作一个控制器并在没有情节提要或 xib 的情况下推送到该视图吗?
  • @user2891803 看看我上面的评论。
  • 您不必这样做。您以编程方式创建和呈现视图控制器。您甚至可以使用代码在没有视图控制器的情况下创建视图并将视图添加到视图层次结构中。 @user2891803
【解决方案2】:

长话短说,我对故事板目的的理解如下:

  • 更少的代码 -> 更少的错误
  • UI 布局的可视化表示简化了 UI 创建(视图层次结构、自动布局约束)
  • 通过控制拖动来设置对象属性(例如委托、手势识别器)的极其简单的方法

【讨论】:

  • 好的,谢谢。在没有情节提要元素或 xib 的情况下制作视图控制器是否“可以接受”而不会导致一些错误?
  • @user2891803 你绝对可以在没有故事板或 xib 的情况下做到这一点。有些公司完全通过代码完成所有事情。但要让你的观点看起来正确,你需要更长的时间。 Storyboard/XIB 实际上主要是帮助您快速设计 UI。您在情节提要中所做的大部分工作实际上是设置 view.center = X,Y。所以你可以在没有情节提要/XIB的情况下做到这一点。但无论你问多少人,一般的经验法则是 Storyboard/XIB 几乎没有缺点。它主要用于在很短的时间内制作您的 UI,并让您看到应用的流程。
  • @user2891803 - 它确实完成了,在有限的情况下它是有意义的。更常见的是有一个部分空白的 XIB 表示并以编程方式填充它。
  • @user2891803 当然,如果您喜欢这种方式,您可以通过编程方式创建视图控制器、视图和任何其他对象。此实现是否包含错误 - 它仅由您的技能水平定义。 Interface Builder 可以让您摆脱由于缺乏注意力或经验而可能犯的许多错误。这只是您在构建 UI 上所付出的努力。一旦你花一些时间学习故事板,你将能够在几分钟内创建相当复杂的 UI,而以编程方式创建它们可能需要几十分钟 :)
  • @user2891803 - 即使没有“需要”,我也会鼓励用户尝试一次或两次完全程序化的 VC。这将使整个过程变得不那么神秘。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-11
  • 2017-04-10
  • 1970-01-01
  • 2011-09-06
  • 2014-08-16
  • 2015-08-28
  • 2015-05-01
相关资源
最近更新 更多