.xib文件和.storyboard有什么区别?


159

有人可以用简单的词来解释.xib和.storyboard之间的区别吗?


我不知道.timeline是什么,我怀疑它与该标签所指的Facebook时间轴无关
iandotkelly

1
这两个完全独立的问题吗,乔治?另外,当您说时,您.timeline是在谈论已保存文件的版本吗?
Michael Dautermann

您在这里有两个独立的问题,因此我将其简化为一个。第一个问题在这里被问过几次,例如在XCode上找不到基于窗口的应用程序中,因此我删除了该部分,以关注Storyboarding问题。
布拉德·拉尔森

1
另请参见类似的问题:何时使用情节提要和何时使用XIB。具有优良的详细解答,包括更新的iOS 8和Xcode的6
罗勒布尔克

Answers:


115

Apple引入了"storyboarding"iOS5 SDK中的概念,以简化和更好地管理应用程序中的屏幕。您仍然可以使用.xib开发方式。

前故事板,每个UIViewController都有一个关联.xibStoryboard实现两件事:

  1. .storyboard实际上是应用中所有屏幕的一个文件,它显示了屏幕的流程。您可以通过segues这种方式在屏幕之间添加/ transitions。因此,这可以最小化管理多个屏幕所需的样板代码。

  2. 最小化应用程序中文件的总数。

您可以Storyboard通过取消选中“使用情节提要”选项来避免在创建新项目时使用。

您可以参考本教程开始。


5
那么,情节提要替代了对.xib文件的需求吗?
威廉·

16
理想情况下,是的。1 .storyboard文件='n'号。.xib文件。
Sagar Hatekar 2011年

2
但是,如何在视图之间进行转换呢?我知道有segue,但是只有几种不同样式的segue。我认为您仍然可以像以前一样在视图之间切换,但是如果您不使用segue,则在情节提要中看起来很奇怪,对吗?您对此有何看法?
dontangg 2012年

1
在那种情况下,我相信NavigationControllers会发挥作用吗?
Sagar Hatekar 2012年

有趣的事实:我用这篇文章来炫耀我(有限的)iOS信誉:D
Sagar Hatekar '19

22

是的,您仍然可以为iOS 5创建基于窗口的应用程序。如果您使用“空项目”模板,您将看到在应用程序委托中为您创建了一个窗口。从那里您可以正常添加XIB文件或新的情节提要。

我假设您的意思是“故事板”而不是“时间线”。情节提要允许您直观地绘制应用程序中的所有视图以及它们之间的相互关系。如果你是刚刚起步的故事板,有一个介绍故事板在WWDC 2011的视频在这里。iTunes-U上的2011 Stanford iOS课程也是iOS 5专用的,涵盖了故事板等。


15

故事板就像画布一样,在其中放置了所有.xib文件。您不再有任何.xibs,仅在画布上直接具有View Controllers。


2
可能是最有用的答案。
穆尼卜

9

故事板是自Xcode 4.2发行以来可用的新功能。它为iOS开发人员创建和设计用户界面提供了一种全新的方式。在引入Storyboard之前,对于初学者来说,创建导航(和标签)界面特别困难。每个接口都存储在单独的xib文件中。最重要的是,您必须编写代码以将所有接口链接在一起并描述导航的工作方式。

使用情节提要,所有屏幕都存储在一个文件中。这为您提供了应用程序视觉表示的概念概述,并向您展示了屏幕的连接方式。Xcode提供了一个内置的编辑器来布置情节提要。您可以简单地使用指向和单击来定义各个屏幕之间的过渡(称为segue)。这并不意味着您不需要为用户界面编写代码。但是情节提要极大地减少了您需要编写的代码量。

资料来源:http : //www.appcoda.com/use-storyboards-to-build-navigation-controller-and-table-view/


2

XIB:

1)Xib文件与单个UIView一起使用。

2)在xib中实现复杂的自动布局非常困难。

3)与情节​​提要和静默缓慢相比,它利用更多的内存。

4)与iOS5及更高版本兼容

5)您可以使用不同的XIB对不同的语言和国家/地区进行本地化。

6)很难使用相同的Xib来支持多个设备。

故事板

1)您可以在单个情节提要中布置所有场景,例如视图控制器,导航控制器,TabBar控制器等。

2)您可以轻松使用“自动布局”来定义元素之间的数学关系,这些元素定义了它们的位置和大小。

3)通常快,分配更少的内存。

4)在iOS 5之前不兼容。

5)“动态”和“原型”单元格可以轻松使用。

6)故事板最适合用于中小屏幕的应用。

我见过的最好的答案:iOS中的Xib与Storyboard


0

XIB和Storyboard用于为用户创建界面。

重要的一点是,xib用于创建单个视图(在xib文件的顶部具有单个文件所有者),但是如果是viewcontroller,则可以添加多个屏幕并且还可以监视其流程(单独的文件所有者)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.