首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在UICollectionView中从XIB加载多个单元使第一次加载时滚动滞后

在UICollectionView中从XIB加载多个单元使第一次加载时滚动滞后
EN

Stack Overflow用户
提问于 2015-12-30 14:29:05
回答 1查看 257关注 0票数 1

我有一个类似7-8个不同细胞的集合视图。单元格在XIB文件中构造。然后在中使用:

代码语言:javascript
复制
  [self.collectionView registerNib:[UINib nibWithNibName:name bundle:nil] forCellWithReuseIdentifier:name];

一切都如预期的那样工作,但也存在一些性能问题。在第一个滚动集合视图中,单元格的出现明显滞后。在所有类型的单元格被加载之后,至少有一次所有的东西都开始顺利滚动。细胞并不是很复杂。

Q:为什么在故事板中不使用XIB呢?

A:在整个应用程序的不同集合视图中使用相同的单元格。通过这种方式,我可以在xib中对单元格应用更改一次。我想不出更简单的办法来解决这个问题。

我很确定UINib在加载之后是缓存的,这就是它停止滞后的原因。例如,我想知道是否有一种方法可以在飞溅屏幕上预加载这些xib。它将需要一两秒钟,但将导致更顺利的经验。

EN

回答 1

Stack Overflow用户

发布于 2015-12-30 15:39:51

UINib一旦加载就会缓存,有很多原因可能会导致滚动滞后:

  • 你在做复杂的布局计算吗?
  • 您是在单元格中设置巨大的映像,还是在主线程上执行密集任务来调整它们的大小?
  • 你有复杂的透明设备吗?
  • 您是否在做一些需要屏幕外呈现的操作,例如cornerRadiuslayer上?

使用这些工具,您可以真正地检查其中的大部分问题,例如,Time Profiler将帮助您检查是否有什么东西阻塞了UI,使用模拟器您可以激活颜色混合层来搜索透明(红色)和彩色脱机渲染以检查屏幕外呈现视图(黄色)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34531430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档