2013-02-13 75 views
4

我正在使用UICollectionView來顯示數據的幾個部分。這些部分具有固定數量的項目。我希望所有項目都能以連續的網格顯示。UICollectionView使用節在單元格之間留下間隙

現在我在水平方向上實現這一點: enter image description here

但在垂直此留下了很大的差距: enter image description here

我想解決部分之間的差距,因爲它是醜陋的,它不屬於那裏。 我很樂意使用自定義的FlowLayout,但我找不到一個指向正確方向的教程(我發現了幾個教程,但沒有一個真正觸及此問題)。

Can有人幫我解決這個問題,或者至少讓我指向正確的方向?

P.S:我已經實現了部分,因爲我正在加載數據。此時使用1節不適合我。

UPDATE 根據要求,我添加了用於當前FlowLayout的值。我在全屏(減UINavigationBar)UICollectionView上使用標準水平流佈局,每個部分有21個項目。

  • 滾動方向:水平
  • 細胞大小:248,196
  • 頁眉/頁腳大小:無
  • 最小間距爲細胞:10
  • 最小間距爲行:10
  • 節插圖:20,20,10,10
+0

編輯您的文章包括所有你在流佈局設置的大小參數,所以我們可以嘗試重現問題。 – 2013-02-13 09:53:27

+0

更新了我的帖子。 – Jake 2013-02-13 09:59:43

+1

問題不在於缺口。問題是每個部分中的項目數量。你有四排。如果該部分的項目數不是4的倍數,則無法顯示完整部分,因此在移至下一部分之前會留下間隙。這幾乎就像你想要「內聯」部分? – Fogmeister 2013-02-13 10:09:31

回答

1

要消除這些差距,您需要創建自定義佈局,這將充當收藏視圖的佈局。這個類將爲UICollectionViewFlowLayout的子類。

然後,您可以重寫以下兩種方法,並可以根據需要創建自己的自定義佈局。

- (NSArray*)layoutAttributesForElementsInRect:(CGRect)rect 
    - (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)path 

UICollectionViewLayoutAttributes是類將處理單元位置,框架,Z-索引等

您還可以使用下面的屬性。

collectionView:layout:minimumInteritemSpacingForSectionAtIndex: 
collectionView:layout:minimumLineSpacingForSectionAtIndex: 
8

使用這樣

這將解決問題峽

UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init]; 

layout.minimumInteritemSpacing = 0; 
layout.minimumLineSpacing = 2; 
+0

他正在談論節段間隙,而不是節段之間的間距。 – 2014-10-24 19:07:39

+0

謝謝你救了我 – 2015-08-26 13:45:32

相關問題