自定义UICollectionViewLayout多次调用layoutAttributesForElementsInRect
问题描述:
我创建了一个自定义UICollectionViewLayout
,它创建了一个二维网格。滚动水平蚂蚁垂直工作正常。如果您在不同的OS
上进行测试,则会出现问题。自定义UICollectionViewLayout多次调用layoutAttributesForElementsInRect
如果您到达整个UICollectionView
和bounces
的右边界或下边界,iOS7
上没有任何反应。但是,如果每次将UICollectionView
拖动到bounds
的大小上时,它会到达iOS6
,方法layoutAttributesForElementsInRect
将被调用多次。这会导致大量的lag
,因为在layoutAttributesForElementsInRect
里布局会枚举所有视图以获取应该显示的视图。
是否有人知道什么是对iOS6
答
缓存prepareLayout布局属性导致此问题。循环浏览它们并查看layoutAttributesForElementsInRect中的相交点。在layoutAttributesForElementsInRect中创建断点并确保其UIKit代码触发该调用。如果它是您自己的代码触发此调用,请参阅是否可以避免超过必要的触发。在我的情况下,这种方法通常仅由UIKit使用来确定如何布局屏幕上的单元格。