2017-09-11 84 views
2

我有collection viewswift 3以編程方式編寫。它有1個部分和6個垂直項目。每個項目的默認最小行距爲10我假設,但我想爲每個項目設置不同的行間距。例如,項目0和1之間的空間變爲50,但項目1和2之間的空間變爲0.我該怎麼做?我搜查了很多,但找不到解決方案。提前致謝。UICollectionView中每個項目的不同行距 - swift 3

回答

2

它是直接不可能通過設置集合視圖的某些屬性,但你可以做一個絕招我認爲,

設置你的minimum line spacingminimum interitem spacing0一樣,

layout.minimumInteritemSpacing = 0 
layout.minimumLineSpacing = 0 

所以你collection view cell不會在任何方面的任何空間!

現在保持你的細胞的背景色爲清晰的顏色!

並在您的單元格中添加UIView(您的內容),其大小(小於單元格大小)顯示兩個單元格之間的間距。因此,您可以在每個單元格中添加不同大小的視圖,並且它將顯示爲每個單元格之間不同的空間!

或者

如果你不想調整細胞的你內心的看法,那麼你可以爲你的細胞從委託方法sizeForItemAtIndexPath爲不同的項目返回不同的尺寸!

例如,

我寫Objective C的代碼,例如

sizeforitem

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 

if (indexPath.item == 1 || indexPath.item == 6 || indexPath.item == 7 || indexPath.item == 9 || indexPath.item == 15) { 

    return CGSizeMake(screenWidth/3 -20, screenWidth/2); 
} 

return CGSizeMake(screenWidth/3, screenWidth/3); 
} 

和結果是

enter image description here

0

一個想法可能是將行間距視爲「其他類型的單元格」,如空白單元格,您會看到?在方法heightForRowAtIndexPath中,當indexPath對應那些空白單元格時,返回它們的自定義高度,否則返回「真實」單元格的行高度。

(這意味着在cellForRow返回這些空白單元格,並增加其數量,以你目前的numberOfRowInSection算過)

相關問題