XIB超过故事板

时间:2014-07-03 11:22:12

标签: ios uistoryboard

目前我们在所有项目中使用Storyboard而不是xib。但在我看来,如果你想制作可以在不同视图控制器中重复使用的可重用视图(自定义视图或Tableview单元格),你必须使用xib文件,就像在故事板中一样,我们无法单独制作单个视图对象。 / p>

请注意,我正在使用Storyboard进行整个应用程序的工作流程(带有segues的视图控制器)。仅适用于可重用的tableview单元格,我使用的是XIB。

我搜索过很多苹果文档以及WWDC视频,但是我找不到Apple开发人员的任何具体证据,说明XIB会留在这里,或者你应该使用XIB进行自定义视图。

如果你们中的任何一个人有任何类型的链接,我们仍然可以使用XIB,而不必担心苹果会删除它,我真的很感激。

3 个答案:

答案 0 :(得分:7)

当您不重复使用视图时,建议使用故事板。

一旦你想在多个视图/故事板中重用某些东西,那么你需要XIB。您已经提到了自定义单元格的示例。这是我经常需要的东西,我想在多个表视图中使用相同的单元格。我也用图表做同样的事情。我创建了一个图表视图,其中我设置了颜色等,我在任何地方重复使用它,只在其中放入不同的数据。这样可以节省大量关于样式/外观的代码,并使应用程序易于维护。如果发生变化(例如因为新的iOS版本),我需要在一个地方更改所有内容。

此外,我希望为iPhone和iPad提供视图(例如单元格),让系统确定使用哪一个。为此,我再次需要XIB。我在最后使用~iphone~ipad的表示法,我不必编写代码来检索正确的视图。

如果没有XIB,这是你无法做到的两件事。因此,遵循Apple准则,我的方法是尽可能使用故事板和仅在需要时使用XIB(主要是因为可重用性)。但是有一个人需要XIB的真实案例!简单地忽略它们并不是一个好的做法。实际上,在每个项目中我都有故事板和XIB。

修改:我刚刚找到一个great post来解释故事板的缺点。有很多我不知道的事情。

答案 1 :(得分:2)

此外,您不必独占使用。即使您的大部分工作都在故事板中,您仍然可以使用XIB文件。使用其中任何一个也不会限制您创建一个根本不在IB中构建的视图。

故事板有很多优点。特别是当你开始为项目带来新人时。在没有看到数十万行代码的情况下,新开发人员可以查看故事板,并在30分钟或更短的时间内了解应用程序的流程。

话虽如此,你绝不应该限制自己。限制自己只使用故事板,从不使用XIB或在代码中完全构建视图就像是说“我们只会使用NSArrays,而不是NSDictionary或NSSet”。而不是愚蠢的限制,你应该始终只是确保你正在使用正确的工具。

答案 2 :(得分:0)

我的观点是使用哪一个适合该背景,这里有一些指导原则:

何时使用笔尖

  • 模块化是精心设计的nib文件的关键
  • 使用笔尖存储视图,子视图,自定义控件或重复的视图
  • 无法表示相关内容的屏幕之间的关系

何时使用故事板

  • 故事板最适合用于表示内容屏幕和这些屏幕之间的连接
  • 对prepareForSegue:sender:method
  • 给予应有的注意和关注
  • 在设计故事板时,模块化仍然适用

一般指导

  • 将您的项目分解为笔尖和故事板
  • 视图,子视图和自定义控件应包含在单独的nib文件中 在设计全屏内容时使用故事板,并且场景之间存在明确的关系
  • 考虑界面是否需要是静态的还是动态的
  • 使用单独的故事板来封装可重复使用的场景序列
  • 为不相关的场景使用单独的故事板
  • 可以跨不同控制器重用的表视图单元属于nib文件