在uicollectionview上的两列

jac*_*zki 11 objective-c ios uicollectionview

如何在UICollectionView中获取两列,占用整个空间而没有任何边距或间隙,就像我在下面绘制的图片一样:在此输入图像描述

我尝试使用以下代码:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    return CGSizeMake(160, 160);
}

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

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
    return 1.0;
}
Run Code Online (Sandbox Code Playgroud)

但得到了这个结果:

在此输入图像描述

Vac*_*cca 5

通过实现UICollectionViewDelegateFlowLayout 协议,您可以找到许多实现UICollectionView布局的方法.

collectionView:layout:minimumInteritemSpacingForSectionAtIndex:
 collectionView:layout:minimumLineSpacingForSectionAtIndex:
Run Code Online (Sandbox Code Playgroud)

应该足以解决这个问题.

您还可以实现numberOfItems和numberOfSections来指定行数,列数.
  或者,您可以将单元格的大小指定为(UICollectionView的宽度)/(所需的列数) -
cellForItemAtIndexPath中的单元格之间的某些偏移量.
  默认情况下,单元格由此计算并相应地排列.只需减小尺寸,您就会看到多列.Ref1 Ref2


jac*_*zki 4

我发现最好的方法是在 Storyboard 或委托方法中,项目大小为 159,间隙为 0.5,如果需要,甚至可以更小。只是玩玩它