我在单元格中设置了一个包含10个子视图的集合视图。
子视图是 -imageview上有标签 - 文本视图 -imageview -uilabel -imageview -uilabel
最初,集合视图在iPad上显示了15个单元格。当我需要更换底部或顶部的单元格(重复使用单元格)时,滚动暂停时滚动暂停。我删除了阴影,但问题仍然存在。
因此,当重复使用旧单元格时会出现问题。
顺便说一句,没有通过网络加载的图片。
答案 0 :(得分:5)
我很久以前就得到了答案,但为了其他人的利益,可能会遇到同样的问题。
除了删除阴影外,您还需要删除“清晰颜色”背景。任何需要额外处理的附加图纸都应该被移除或替换为替代。任何繁重的工作,文本格式化,日期格式化都应该在显示集合或表视图之前完成。确保您的单元格仅进行演示而不进行处理。如果你无法避免它在另一个线程上进行处理。
要测量滚动速率,您需要使用仪器>图形>用于测量帧速率的核心动画工具。
尝试一下,你会注意到不同之处。
答案 1 :(得分:4)
编辑:无需尝试自动调整屏幕,只需阅读有关UICollectionView性能提升的简短文章http://noxytrux.github.io/blog/2014/09/25/ios8-weirdness-part3-laggy-uicollectionview/
可能是自动布局开销。请考虑尝试自动调整遮罩。
您可以提交所有内容并进行实验:
我通过这种方式解决了我的UICollectionView性能问题。当你一次拥有大量可见细胞时,它会有所帮助。
另外,如果您有图片观看次数,请参阅此回答Setting image property of UIImageView causes major lag
不要忘记乐器:运行 Time Profiler ,看看你的主线程时间最多吃什么。
答案 2 :(得分:0)
我想这个问题也可能是因为ImageView。
使用Kingfisher 5来预取,加载,显示和缓存图像将解决此问题。
let url = URL(fileURLWithPath: path)
let provider = LocalFileImageDataProvider(fileURL: url)
imageView.kf.setImage(with: provider)
https://github.com/onevcat/Kingfisher/wiki/Cheat-Sheet#image-from-local-file