随着故事板的引入,我在创建 UIViewController 的子类时不会选择创建 .xib/.nib,因为我可以在界面生成器中拖出一个视图控制器并将其分配给新类。
那么,有了故事板,我什么时候需要使用 .xib/.nib 文件?
谢谢你。
随着故事板的引入,我在创建 UIViewController 的子类时不会选择创建 .xib/.nib,因为我可以在界面生成器中拖出一个视图控制器并将其分配给新类。
那么,有了故事板,我什么时候需要使用 .xib/.nib 文件?
谢谢你。
故事板并没有完全消除对 NIB 文件的需求。一个常见的例子是创建子视图以进入UIScrollView
. 您不能在情节提要中单独创建子视图;相反,您必须为子视图创建单独的 NIB,并以编程方式将它们附加到滚动视图。
事实上,几乎在任何需要在运行时更改子视图的情况下,您都需要使用单独的 NIB。
故事板非常适合某些类型的应用程序,但对于任何复杂的东西,旧方法仍然可以很好地工作。另一个好处是它们可以很好地共存。您可以将占位符视图放在情节提要中,并稍后以编程方式使用 NIB 定义的视图填充它们。
我猜,情节提要包含所有视图的 .xib/.nib 文件。它呈现了它们之间的关系,如果你有很多观点,它可以帮助你避免混淆。此外,它还可以在编写代码时节省您的时间和精力。
我最近尝试了故事板,我对它的使用感觉很复杂:
专业人士
效率:对于简单的用例,我发现故事板比“旧方法”更有效。
示例 1:Editor > Embed In > Navigation Controller
瞧,不再需要实例化和配置。
示例 2:您可以为 TableView 制作“Prototype Cells”,从而显着加快静态表格视图的创建速度。AFAIK 这对于 nib 文件是不可能的
骗局
So considering these points I still find storyboarding very appealing but it makes sense to combine both approaches which is not really a big deal. Additionally, this technology it is still quite new so it might improve in the (near) future.
如果您使用情节提要,通常不需要创建单独的 .xib 文件。如果你愿意,你仍然可以使用 .xib 文件——它可能很有用,例如,如果你有一个特别复杂的视图,你想自己配置。但是,大多数情况下,没有必要这样做。