iOS:将大型 XIB 重构为几个较小的 XIB 文件以提高速度

Posted

技术标签:

【中文标题】iOS:将大型 XIB 重构为几个较小的 XIB 文件以提高速度【英文标题】:iOS: Refactor Large XIB into a few smaller XIB files for speed 【发布时间】:2011-10-13 23:26:15 【问题描述】:

在观看某些WWDC2011 videos 时,有人提到过大的nib files 会使您的应用需要一些时间来加载。我的应用程序不一定是这种情况,但我觉得我的nib 相当大。视频中的建议是将较大的 nib 制作成几个较小的,以加快加载时间。

也许我遗漏了一些东西,但我如何将一个大的 nib 拆分成较小的?我的UIViewController 在初始化时只会加载一个nib。还有其他方法可以处理多个文件吗?

【问题讨论】:

【参考方案1】:

正如您所指出的,您可以使用指定的 nib 初始化 UIViewController 以加载其 view 属性,这只是一个文件。但是,您不需要将所有 view 属性的子视图打包到同一个 nib 文件中。如果您有一些仅在某些时候可见的子视图,请考虑将它们拆分为自己的 nib 文件并使用 UINib 按需加载它们。如果您有一组UITableViewCell 子类或图块用于UIScrollView 的内容,您可能希望能够仅加载您实际需要的视图实例,而不是包含无关视图的大量 nib(例如,加载所有表格当您只使用其中一个时)。

【讨论】:

好的,使用 UINib 听起来是个好主意。因此,如果我在另一个 nib 文件中有 UIView,我可以调用 [UINib nibWithNibName:@"DetailView" bundle:nil];它会返回我的 UIView 对象吗? 没有。 +nibWithNibName:bundle: 将返回一个 UINib 对象。然后,您可以在该 UINib 实例上调用 -instantiateWithOwner:options:,该实例返回在 nib 中找到的所有***对象的数组,并将任何绑定与您提供的“所有者”连接起来。如果需要,您可以从该数组中从您的 nib 获取对象,但我更喜欢传递一个所有者,该所有者将有一些属性绑定到从 nib 加载的对象。 (developer.apple.com/library/ios/#documentation/UIKit/Reference/…)

以上是关于iOS:将大型 XIB 重构为几个较小的 XIB 文件以提高速度的主要内容,如果未能解决你的问题,请参考以下文章

怎么把一个较大的TXT文件分成几个较小的

Matlab - 能够将一个结构的字段分解成几个较小的字段。

将大减速器拆分为较小的减速器

Python“header.py”模块

在将大型类重构为较小的类之前,您是否查看了方法使用的变量? [关闭]

svndumpfilter --drop-empty-revs 保持填充修订