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

时间:2013-02-13 09:52:27

标签: ios uicollectionview uicollectionviewlayout

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

现在我以水平方向完成此任务: enter image description here

但在纵向上,这留下了很大的差距: enter image description here

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

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

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

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

  • 滚动方向:水平
  • 细胞大小:248,196
  • 页眉/页脚大小:无
  • 细胞的最小间距:10
  • 行的最小间距:10
  • Section Insets:20,20,10,10

2 个答案:

答案 0 :(得分:8)

像这样使用

它将解决差距问题

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

layout.minimumInteritemSpacing = 0;
layout.minimumLineSpacing = 2;

答案 1 :(得分:1)

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

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

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

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

您还可以使用以下属性。

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