我有一个包含7-8个不同单元格的集合视图。单元格在XIB文件中构建。然后在View Controller中使用:
[self.collectionView registerNib:[UINib nibWithNibName:name bundle:nil] forCellWithReuseIdentifier:name];
一切都按预期工作,但存在一些性能问题。在第一个滚动集合视图中,当单元格出现时明显滞后。在所有类型的细胞至少加载一次后,一切都开始顺利滚动。细胞并不是很复杂。
问:为什么你甚至使用XIB,为什么不在故事板中使用原型? A :整个应用中的不同集合视图中使用相同的单元格。这样我就可以在xib中对单元格应用一次更改。我无法想出更容易的解决方案。
我非常确定 UINib 在加载后会被缓存,这就是它停止滞后的原因。我想知道是否有办法在启动屏幕上预加载这些xib。它需要一两秒钟,但会带来更流畅的体验。
答案 0 :(得分:0)
UINib
一旦加载就被缓存,有很多原因会导致滚动延迟:
cornerRadius
上的layer
?使用乐器可以真正检查大多数问题,例如Time Profiler
将帮助您检查是否有东西阻挡了UI,使用模拟器可以激活颜色混合图层进行搜索透明胶片(红色)和彩色离屏幕渲染以检查屏幕外渲染视图(黄色)