我有一个类似7-8个不同细胞的集合视图。单元格在XIB文件中构造。然后在中使用:
[self.collectionView registerNib:[UINib nibWithNibName:name bundle:nil] forCellWithReuseIdentifier:name];一切都如预期的那样工作,但也存在一些性能问题。在第一个滚动集合视图中,单元格的出现明显滞后。在所有类型的单元格被加载之后,至少有一次所有的东西都开始顺利滚动。细胞并不是很复杂。
Q:为什么在故事板中不使用XIB呢?
A:在整个应用程序的不同集合视图中使用相同的单元格。通过这种方式,我可以在xib中对单元格应用更改一次。我想不出更简单的办法来解决这个问题。
我很确定UINib在加载之后是缓存的,这就是它停止滞后的原因。例如,我想知道是否有一种方法可以在飞溅屏幕上预加载这些xib。它将需要一两秒钟,但将导致更顺利的经验。
发布于 2015-12-30 15:39:51
UINib一旦加载就会缓存,有很多原因可能会导致滚动滞后:
cornerRadius在layer上?使用这些工具,您可以真正地检查其中的大部分问题,例如,Time Profiler将帮助您检查是否有什么东西阻塞了UI,使用模拟器您可以激活颜色混合层来搜索透明(红色)和彩色脱机渲染以检查屏幕外呈现视图(黄色)。
https://stackoverflow.com/questions/34531430
复制相似问题