快速加载 nib 文件

Posted

技术标签:

【中文标题】快速加载 nib 文件【英文标题】:Loading nib files really fast 【发布时间】:2015-09-16 09:22:00 【问题描述】:

尝试以非常快的速度连续加载数百个UINib(在不到 0.5 秒的时间内一个接一个)。 UINib 包含 UIButton 和一个相对较小的图像(每个笔尖不同)。

我试过这个:

UINib *nib = [UINib nibWithNibName:viewName_ bundle:[NSBundle mainBundle]];
        [nib instantiateWithOwner:self options:nil];
        mainView = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0];

还有这个:

mainView = [[[NSBundle mainBundle] loadNibNamed:viewName_ owner:self options:nil] objectAtIndex:0];

最后一个速度快了几毫秒,CPU 使用率分别为 92% 和 97%。

更快地加载这些笔尖的最佳方法是什么?或者有更好的方法吗?

谢谢

【问题讨论】:

我的第一个想法是为什么要加载几百个 NIBS。您能否详细说明您要实现的目标。 @rckoenes 这是应用程序设置的方式。在下一个笔尖上慢慢走不是问题。当“滚动”非常快时,CPU 会发疯! (滚动我的意思不是滚动......我的意思是前进到下一个笔尖) 在我看来设计是错误的。为了使滚动速度更快,您需要尽可能多地重用视图。就像在表格视图中一样。加载也需要时间,并且无法真正改善。但是重用视图可以。 @rckoenes 感谢您的意见。该应用程序的设计考虑了所有参数,这是最好的设计模型。它不能改变。显然,要解释我们为什么这样做,需要的不仅仅是评论。你必须相信我 我认为问题在于我正在加载的 UIButtons。当按钮少于 10 个时,这不是问题。但是,当超过 25 岁时,一切都变得混乱了。 【参考方案1】:

好的,这个解决方案真的很容易。万一遇到别人。 等待苹果修复它!

9.1 就像一个魅力。一切都按预期加载超快。 感谢您的意见。

【讨论】:

以上是关于快速加载 nib 文件的主要内容,如果未能解决你的问题,请参考以下文章

加载不同的 Nib 文件

Nib 文件加载速度极慢

使用 UIViewController 加载 nib 文件

从框架加载 nib 文件

手动加载 nib 文件时未调用 init 或 initWithNibName

无法从主包中按名称加载 Nib 文件