【发布时间】:2013-05-02 11:21:29
【问题描述】:
我正在开发一个自定义 UICollectionViewLayout,它显示按天/周/月组织的单元格。
滚动不流畅,看起来延迟是由于在每个渲染循环上调用 [UICollectionView _updateVisibleCellsNow] 造成的。
来源:https://github.com/oskarhagberg/calendarcollection
数据源和委托:https://github.com/oskarhagberg/calendarcollection/blob/master/CalendarHeatMap/OHCalendarView.m
时间简介:
更新
也许它是徒劳的?一些使用普通UICollectionViewController 和UICollectionViewFlowLayout 的测试,给定大致相同数量的单元格/屏幕会产生相似的时间曲线。
我觉得它应该能够一次处理约 100 个简单的不透明单元而不会出现抖动。我错了吗?
【问题讨论】:
-
不,你没有错。我使用 Flowlayout 和包含图像视图对象的静态分配单元格的简单数组对 vanilla UICollectionView 对象进行的测试表明,您可以轻松达到 100 个单元格而不会出现性能问题。使用 iPad 3 上的普通设置,大约 700 多个单元预计会出现性能问题。
-
在我的例子中,NSDate 相关的函数花费了太多时间......
-
你能解释一下你是如何创建你的原版细胞集合视图的吗?在 iPad 3 上,单元格仅包含 1 个图像(所有单元格都相同),即使有 50 个单元格,它也不是完全平滑,超过 150 个单元格完全无法使用。另外,当我说 150 个单元格时,我的意思是在屏幕上立即可见,而不是在整个数据集中。屏幕上有 30 个单元格,即使有庞大的数据集 (100K+),我也可以轻松保持流畅。
标签: ios objective-c uicollectionview