如何在单行中的两个单元格之间设置集合视图单元格而没有间隙

时间:2016-03-01 18:17:58

标签: ios objective-c uicollectionview

我使用storyboard放置了一个带有一个自定义单元格的集合视图。总共我有6个图像,所以每行我有2个图像(2个单元格)。现在我运行2个单元格之间的间隙更多。我需要删除所有所有单元格之间的间隙,所以它应该是什么样子是没有间隙有6个图像。现在我需要删除间隙enter image description here

我尝试使用故事板增加单元格的宽度。但我不行。是否有任何想法可以消除所有行中每个单元格之间的差距(所有单元格之间的右侧,顶部,底部间隙)

请帮帮我。谢谢

但是当我在iphone 6中运行时,我会这样,为什么? enter image description here

2 个答案:

答案 0 :(得分:2)

使您的类符合UICollectionViewDelegateFlowLayout协议并实现方法:

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

    CGFloat width = self.collectionView.frame.size.width/2;
    return CGSizeMake(width, width);
}


-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {

   return UIEdgeInsetsZero;
}

-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {

   return 0.0;
}

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

答案 1 :(得分:0)

您可以在UICollectionViewFlowLayout中设置minimumInteritemSpacing,在documentation中可以看到更多详细信息

像这样,

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.minimumInterItemSpacing = 1;

self.collectionView.layout = flowLayout;

来源:http://nsscreencast.com/episodes/46-fun-with-uicollectionview