如何将多个 .xib 重新用作另一个 .xib 的模板?

Posted

技术标签:

【中文标题】如何将多个 .xib 重新用作另一个 .xib 的模板?【英文标题】:How to re-use multiple .xib as a template to another .xib? 【发布时间】:2011-09-27 21:42:18 【问题描述】:

我想重复使用一些 .xib 文件作为我 ios 应用主要视图的模板。 有人可以告诉我是否有可能在 iOS 中实现“类似模板”的系统,例如:Header、Logo、Footer,并将它们作为单独的 .xib 视图加载以填充另一个占位符.xib? 我该怎么做?

像这样:

在同一个应用程序中,我有一个 Header.xib、Footer.xib,我想将它们包含在我的 MainMenu.xib 中

【问题讨论】:

您是指在一个应用程序中,还是在寻找可以跨应用程序使用的模板? 在同一个应用程序中,我有一个 Header.xib、Footer.xib,我想将它们包含在我的 MainMenu.xib 中 【参考方案1】:

您只需在initWithNibNamecall 中使用一个xib 文件即可将其用于多个视图。

然后,即使您有细微的差异,您也可以通过编程方式进行处理。我建议您定义一个常见的 setupMyScreen 方法,该方法将您拥有的 screenType 作为参数,并在 switch 语句中处理所有的小修改。

这种方式很容易维护。

ps,您可能希望提高自己的接受程度 - 否则可能不会真正倾向于为您的问题提供答案...

【讨论】:

如果没有发布好的(和相对的)疑问和回答问题,我就无法接受,这在 iOS 中会更难,因为我是 2 周前开始的。但是,与问题相关,我如何加载多个“部分” .xib 进入主要的占位符? 您无法加载“部分”xib 或组合 xib。 viewController 总是以最大 1 xib 实例化。在您的情况下,似乎最简单的方法是通过共享代码解决它。您可以以编程方式将页眉/页脚放在视图中,然后重用它们。最初它可能看起来更复杂和/或更多工作,但是,一旦你设置了它,它就变得非常实用。 ps 苹果明确规定一个 ViewController 应该控制一个屏幕。但是,您可以创建管理您的页脚和页眉的对象,如前所述...【参考方案2】:

听起来你想在一个视图中使用多个视图而不是 你必须在第一个模板中使用 UIView 模板。

【讨论】:

我尝试创建一个 UIView 加载带有 UIImageview 的 xib,然后将其添加到 Main .xib 上的 UIView。我只是在这里发布,因为它不起作用。你知道任何教程吗? 这个链接可能对你有帮助:developer.apple.com/library/ios/#documentation/WindowsViews/… 如果你把所有视图放在一个 XIB 中,那么当你的应用程序启动时,它必须将整个 XIB 加载到内存中并为所有控件构造所有对象,这需要一个非- 微不足道的时间量。相反,如果您将视图分成单独的 XIB,那么您的应用程序将启动得更快。所以应该也试试这个链接:iphoneapptuts.com/nib-files/how-to-use-multiple-nib-files 我不想使用复杂的视图。只有一个用于背景,另一个用于页眉/页脚,这会导致那么多开销吗?我只是想了解你们如何在 iOS 中管理大型项目。如果我想更改背景图像,我应该更改所有 .xib 吗?那是不可持续的:(

以上是关于如何将多个 .xib 重新用作另一个 .xib 的模板?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 xib 的子视图显示到另一个 xib 的表格单元加载中

如何在多个 .xib 文件之间执行展开转场(不使用情节提要)

单个 UIViewcontroller,如何在多个 xib 之间切换?

如何将 XIB 复制到另一个项目?

将一个 xib 粘贴到另一个 xib

访问 xib 和另一个项目的类?