2015-06-20 70 views
0

我有一個UICollectionView我已經實現了一個自定義子類UICollectionViewFlowLayout並實現layoutAttributesForElementsInRect方法。我的視圖是可滾動的,我已經實現了shouldInvalidateLayoutForBoundsChange方法返回YES。所以每次我滾動,layoutAttributesForElementsInRect被調用。rect來自layoutAttributesForElementsInRect的哪裏?

但是當我在上半部分的視圖中滾動時,它被調用的矩形是整個集合的矩形(例如{{0, 0}, {320, 1136}} {{0, 567}, {320, 548}}),當我滾動過去一半時矩形變成只有下半部分(即{{0, 568}, {320, 568}} {{0, 568}, {320, 548}})。這完全打破了我的佈局。我需要layoutAttributesForElementsInRect始終用整個視圖的rect調用。

爲什麼它會使用其他矩形,我如何關閉矩形變換行爲?

回答

0

呵呵,我的收藏視圖有兩個元素,當我渲染它們時,它會爲它們佈置矩形,但是當我渲染一個矩形時,它會爲其中一個矩形佈置矩形。我可以通過計算元素的數量並乘以每個元素的尺寸來得到正確的結果來修復它。