2013-08-03 242 views
13

我有一個集合視圖之間頂部/底部分離,工作正常,並且我已經調整爲X填充的分離,IOS UICollectionView對細胞

並能正常工作, 但是對於小區之間在Y填充,似乎並沒有調整到沒有分離

這是我的佈局

UICollectionViewFlowLayout *layoutItem=[[UICollectionViewFlowLayout alloc] init]; 
    layoutItem.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0); 

enter image description here 所以,我怎麼能設置在頂部的分離/底部爲0px代碼?在細胞之間?,

謝謝!

回答

43

您將在第一時間看到只有頂部y填充。 並且爲了顯示底部y填充,您需要更多的數據,即CollectionView框架高度。當你向上滾動收集視圖時,你會看到底部的y填充。

我用的CollectionView這樣

https://stackoverflow.com/a/17856406/1305001

當我設置

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section 
{ 
    return UIEdgeInsetsMake(60, 10, 50, 10); 
} 

的輸出來作爲第一次..

enter image description here

當你向上滾動collecti onView你會看到底部填充..

enter image description here

使用此小區間verticle行距

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section 
{ 
    return 5; 
} 

看起來像

enter image description here

+0

嗨,謝謝,我的錯誤我沒有正確解釋,是細胞之間的頂部,底部之間的分隔,意思是說,在細胞之間沒有空間,我編輯了我的問題並投票贊成你感謝 – MaKo

+0

檢查編輯答案,傳遞0而不是5會讓你在單元之間沒有垂直空間。 – Warewolf

5

你也可以做它使用集合視圖流佈局更簡單的方法。

設置流佈局(記得要添加代理在頭):

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

stickerFlowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal; 
**stickerFlowLayout.minimumLineSpacing = 10;** 
stickerFlowLayout.minimumInteritemSpacing = 5; 
stickerFlowLayout.sectionInset = UIEdgeInsetsMake(10, 25, 20, 25); 

// Set up the collection view 
collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:stickerFlowLayout]; 
collectionView.delegate = self; 
collectionView.dataSource = self; 

etc 

正如你可以看到,我們可以很容易地設置線採用間距:

**stickerFlowLayout.minimumLineSpacing = 10;** 

我們也可以改變其他屬性

stickerFlowLayout.minimumInteritemSpacing = 5; 

由於影響項目間空間的項目間距(simila)但與行間距不同)

使用流佈局可以節省大量代碼,並將集合視圖以編程方式集中到一個位置(只需設置插入和行間距,立即爲我節省了兩個額外不需要的功能)