2013-05-02 108 views
5

我有一個UICollectionView,它使用流佈局來放置它的單元格。它是垂直滾動。UICollectionView單元格佈局超出了集合視圖的邊界

它填充320x480屏幕並顯示始終爲96 * 96的自定義UICollectionViewCell - 大小是在Interface Builder中設置的,並且委託沒有實現方法來基於每個項目設置項目大小。

左右各有10個插圖,最小間距設置爲6px。

因此會發生什麼情況是每個水平線上有3個單元。

< -10-> < ---- 96 ----> < -6-> < ---- 96 ----> < -6-> < ---- 96 --- - > < -10-> = 320.

我遇到的問題是,它偶爾會在一行上放置4個單元格! 第四個單元大部分在屏幕之外。然後它只在下一行放置2個單元來補償。整個流程佈局的關鍵點在於它是一個破線佈局,不應該把任何東西放在屏幕外!

我附上一張照片:

enter image description here

請注意,在第二排,還有第四個項目大多是關閉屏幕。

我真的不知道是什麼原因造成的。單元格動態填充數據,但大小不變。所有其他行上的單元格都很合適,所以沒有理由在某些行上發生這種情況。

每次更新集合視圖時,都會在不同位置發生此錯誤。即。它可能發生在第2行,然後一旦更新發生,它可能發生在第10行等等。

集合視圖正在由定時器更新。計時器本質上調用處理某些數據的函數,然後使用dispatch_async(在主隊列上)更新包含後備數據的數組,並調用[collectionView reloadData]。所以我沒有從主線程以外的任何線程更新集合視圖。後備陣列僅在主隊列和該功能中更新;不從其他地方。

請有人給我一些關於可能出錯的建議。

感謝

回答

相關問題