快速加载 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 文件的主要内容,如果未能解决你的问题,请参考以下文章