我有一个包含 7-8 个不同单元格的集合视图。单元在 XIB 文件中构建。然后在视图控制器中我使用:
[self.collectionView registerNib:[UINib nibWithNibName:name bundle:nil] forCellWithReuseIdentifier:name];
一切都按预期工作,但存在一些性能问题。在第一个滚动集合视图中,随着单元格的出现明显滞后。在所有类型的单元格至少加载一次之后,一切都开始顺利滚动。细胞并不复杂。
问:为什么你甚至为此使用 XIB,为什么不在情节提要中制作原型单元?
答:在整个应用程序的不同集合视图中使用相同的单元格。这样我就可以在 xib 中对单元格应用一次更改。我想不出更简单的解决方案来做到这一点。
我很确定UINib在加载后会被缓存,这就是它停止滞后的原因。例如,我想知道是否有办法在启动屏幕上预加载这些 xib。这将需要一两秒钟,但会带来更流畅的体验。