我正在使用UICollectionView来显示几个数据部分。这些部分具有固定数量的项目。我希望所有项目都以连续网格显示。
现在我以水平方向完成此任务:
但在纵向上,这留下了很大的差距:
我想解决各个部分之间的这种差距,因为它很难看并且不属于那里。 我很乐意使用自定义的FlowLayout,但是我找不到一个指向正确方向的教程(我发现了几个,但没有一个真正触及这个问题。)
任何人都可以帮我解决这个问题,或者至少指出我正确的方向吗?
P.S:我已经实施了部分,因为我正在加载数据。目前使用1部分不是我的选择。
更新 根据要求,我正在添加用于当前FlowLayout的值。我在全屏(减去UINavigationBar)UICollectionView上使用标准的水平流布局,每个部分有21个项目。
答案 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: