我有一个UICollectionView
我已经实现了UICollectionViewFlowLayout
的自定义子类并实现了layoutAttributesForElementsInRect
方法。我的视图是可滚动的,我已经实现了shouldInvalidateLayoutForBoundsChange
方法以返回YES。所以每次滚动时,layoutAttributesForElementsInRect
都会被调用。
但是当我在我的视图的上半部分滚动时,调用它的矩形是整个集合的矩形(例如{{0, 0}, {320, 1136}} {{0, 567}, {320, 548}}
),当我滚动过去的一半时只变成下半部分(即{{0, 568}, {320, 568}} {{0, 568}, {320, 548}}
)。这完全打破了我的布局。我需要layoutAttributesForElementsInRect来始终使用rect调用整个视图。
为什么使用其他矩形,如何关闭矩形改变行为?
答案 0 :(得分:0)
哦,我的集合视图有两个元素,当我渲染两个元素时,它会为它们两个布局矩形,但是当我渲染它时,它会为其中一个布置矩形。我可以通过计算元素的数量并乘以每个元素的尺寸来得到正确的矩形来解决它。