-->

UICollectionView使用部分离开细胞之间的间隙(UICollectionView usi

2019-07-19 19:26发布

我使用的是UICollectionView显示数据的几个部分。 这些部分的模型中有固定数量。 我想所有的项目都在连续的网格显示。

现在我在水平方向上实现这一点:

但在垂直此留下了很大的差距:

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

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

PS:因为我加载在飞行中的数据我已经实现的部分。 使用1节是不是在这一刻我的选择。

更新要求我加入用于我目前的FlowLayout值。 我使用的,每节21项的全屏(减去UINavigationBar的)UICollectionView标准的横式布局。

  • 滚动方向:水平
  • 单元尺寸:248,196
  • 页眉/页脚大小:无
  • 最小间距为细胞:10
  • 最小间距为行:10
  • 第插图:20,20,10,10

Answer 1:

使用这样的

这将解决问题峡

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

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


Answer 2:

要删除那些你需要创建自定义布局,将作为布局的集合视图差距。 本课程将子类UICollectionViewFlowLayout。

然后你就可以覆盖下面两个方法并根据需要可以创建自己的自定义布局。

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

UICollectionViewLayoutAttributes是类将处理单元位置,框架,Z-索引等

您还可以使用下面的属性。

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


文章来源: UICollectionView using sections leaves a gap between cells