3

我試圖讓我的單元格之間間隔期望的結果= 0UICollectionViewCell間距設置爲0,但仍然有間距

例子:

enter image description here

我目前有(iPhone 6 ):

enter image description here

我的代碼:

- (UICollectionViewFlowLayout *)setCollectionViewFlowLayout 
{ 
    UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; 

    //iphone5 100 
    //iphone6 118 
    layout.itemSize    = CGSizeMake(118, 118); 
    layout.footerReferenceSize = CGSizeMake(0, 0); 

    layout.sectionInset   = UIEdgeInsetsMake(0, 0, 0, 0); 
    layout.minimumInteritemSpacing = 0.0; 
    layout.minimumLineSpacing  = 0.0; 

    return layout; 
} 

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

我對IB什麼:

enter image description here

我缺少什麼?提前致謝!

回答

0

如果未設置,請更新您的像元大小和圖像視圖大小。你必須設置你的imageview的約束適合細胞。

layout.itemSize = CGSizeMake([UIScreen mainScreen].bounds.size.width /3, [UIScreen mainScreen].bounds.size.width /3); 

我設置屏幕尺寸,因爲我認爲你的CollectionView是適合屏幕寬度取代

layout.itemSize = CGSizeMake(118, 118); 

。將其替換爲您的collectionview大小。

因爲您試圖顯示3個單元格,但是您爲物品設置了固定寬度。所以只需更新您的手機尺寸。因爲在不同的屏幕上你的collectionview widht將會改變,所以你也應該更新你的單元格大小。

+0

感謝您的回答。但仍然給我同樣的結果。間距仍然存在 – tnylee 2015-02-09 08:11:21

+1

@tnylee那麼也許你沒有設置你的imageview的約束。 – 2015-02-09 08:12:04

+0

是的!謝謝!我改變了圖像的大小與單元相同。 – tnylee 2015-02-09 08:16:58

3

它說這是最小間距之間的項目,不是固定間距。 UICollectionViewFlowLayout總是儘可能在行上設置儘可能多的項目。

你應該使你的UICollectionViewCells動態的寬度和計算它們的大小基於UICollectionView的大小。例如,

因此,例如。如果你想在一行上放3個單元格,將UICollectionView的寬度除以3,你應該有單元格的寬度。然而,這需要對值進行一些實驗。

+0

加1感謝提醒 – tnylee 2015-02-09 08:18:57