故事板与 Xib 文件

Posted

技术标签:

【中文标题】故事板与 Xib 文件【英文标题】:Storyboards vs Xib files 【发布时间】:2017-06-24 10:45:47 【问题描述】:

我阅读了一些与同一问题相关的答案,但我想问一些具体的问题。当您有一个巨大的项目时,想象一个大型社交网络,即使您在逻辑上将 UIViewControllers 分成单独的 UIStoryBoards,它似乎仍然会减慢进程。每次查看任何故事板时,都需要一段时间来渲染所有UIViewControllers,而且处理起来似乎很痛苦。

现在,对于大型项目,您会选择 Nib 文件还是坚持使用 UIStoryBoards 更好?

【问题讨论】:

默认情况下,Xcode 现在没有选项让您使用 Xibs 创建项目 你为什么不创建多个故事板? :) 【参考方案1】:

如果它是一个包含许多视图控制器的大型项目并且有一个团队合作,我会推荐 XIB。这是因为每个小团队都不必了解项目的整个流程,因此不需要包含这些关系的故事板。另一个很大的优势是,当他们将那里的代码合并在一起时,出现合并问题的可能性就会降低。您不希望故事板发生合并冲突,相信我。

如果只有你自己在做这件事,有一个故事板确实会显示整个项目流程,让你更了解事情。所以我在这种情况下的建议是继续使用故事板,除非故事板在不合理的时间内加载。

【讨论】:

这听起来很合理!谢谢你。还要感谢@JayDeep 和 Rashwan L 那你是说用XIB文件构建项目就不会出现合并问题? @ElTomato 不,只是不太可能。所以storyboard和xib都是xml文件。在故事板上,它是一个巨大的 xml 文件,其中包含每个元素、约束和内容的详细位置。因此,如果您团队中的某个人不小心移动了视图控制器,您最终可能会遇到合并冲突。对于 xib,由于每个 xib 只有少数人在工作,因此可能性较小。另外,即使您在 xib 上存在合并冲突,也更容易找到并修复冲突,因为 xml 文件将比情节提要的文件短得多。 我通常使用故事板,但我避免使用转场。我从来没有在故事板上遇到冲突。如果应用程序太大,我可能会为每个部分制作故事板 添加到答案中,如果在您的项目中您经常重用 viewControllers 但具有不同的服务,并且从每个 ViewController 转到许多其他 viewControllers 非常重要,建议使用 Xibs,或者之后在意识到你必须从一开始就使用 Xibs 之后,你必须经历大量的重构:)【参考方案2】:

不是说哪个更好。因为根据团队要求,哪个好说。

如果您是单个开发人员,最好使用情节提要,因为加载所有视图所需的时间更少。但是如果团队中有很多开发者,就使用XIB,否则不容易合并模块/任务。

您可以在此处详细了解使用这两种方法的优缺点。 http://codewithchris.com/xcode-using-storyboards-and-xibs-versus-creating-views-programmatically/

【讨论】:

以上是关于故事板与 Xib 文件的主要内容,如果未能解决你的问题,请参考以下文章

何时为新屏幕创建新的故事板与视图控制器?

非故事板 xib 的容器视图未显示

如何动态地将 xib 文件视图适合故事板视图?

swift3中的导航问题,带有没有故事板的.xib文件

苹果有没有说过贬值 xib 以支持故事板? [关闭]

我有一个使用 XIB 文件的音乐播放器项目,如何将它们转换为故事板/视图控制器?