使用节的UICollectionView在单元格之间留下间隙

我正在使用UICollectionView来显示几个数据部分。 这些部分具有固定数量的项目。 我希望所有项目都以连续网格显示。

现在我以水平方向完成此任务: 在此处输入图像描述

但在纵向上,这留下了很大的差距: 在此处输入图像描述

我想解决这些部分之间的差距,因为它很丑陋并且不属于那里。 我很乐意使用自定义的FlowLayout,但是我找不到一个指向正确方向的教程(我发现了几个,但没有一个真正触及这个问题。)

任何人都可以帮我解决这个问题,或者至少指出我正确的方向?

PS:我已经实现了部分,因为我正在加载数据。 目前使用1部分不是我的选择。

更新请求我正在添加用于当前FlowLayout的值。 我在全屏(减去UINavigationBar)UICollectionView上使用标准的水平流布局,每个部分有21个项目。

  • 滚动方向:水平
  • 细胞大小:248,196
  • 页眉/页脚大小:无
  • 细胞的最小间距:10
  • 线的最小间距:10
  • 部分插图:20,20,10,10

像这样使用

它将解决Gap问题

UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init]; layout.minimumInteritemSpacing = 0; layout.minimumLineSpacing = 2; 

要删除这些间隙,您需要创建自定义布局,作为集合视图的布局。 此类将为UICollectionViewFlowLayout的子类。

然后,您可以覆盖以下两种方法,并可以根据需要创建自己的自定义布局。

  - (NSArray*)layoutAttributesForElementsInRect:(CGRect)rect - (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)path 

UICollectionViewLayoutAttributes是处理单元格位置,框架,Zindex等的类

您还可以使用以下属性。

  collectionView:layout:minimumInteritemSpacingForSectionAtIndex: collectionView:layout:minimumLineSpacingForSectionAtIndex: