我有一个集合视图,工作正常,我调整了X填充的分隔,
它工作正常, 但对于细胞之间的Y填充,似乎不适应NO分离
这是我的布局代码
UICollectionViewFlowLayout *layoutItem=[[UICollectionViewFlowLayout alloc] init];
layoutItem.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);
那么如何将顶部/底部的间距设置为0px?在细胞之间?,
谢谢!
答案 0 :(得分:46)
您将在第一时间看到只有顶部y填充。 并且为了显示底部y填充,您需要更多的CollectionView框架高度数据。向上滚动集合视图时,您将看到底部y填充。
我像这样使用了collectionView
https://stackoverflow.com/a/17856406/1305001
当我设置
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(60, 10, 50, 10);
}
输出将是第一次..
向上滚动collectionView时,您会看到底部填充..
将其用于单元格之间的垂直线间距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
{
return 5;
}
看起来像
答案 1 :(得分:5)
您也可以使用集合视图流布局以更简单的方式执行此操作。
设置流程布局(记得在标题中添加委托):
UICollectionViewFlowLayout * stickerFlowLayout = [[UICollectionViewFlowLayout alloc] init];
stickerFlowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
**stickerFlowLayout.minimumLineSpacing = 10;**
stickerFlowLayout.minimumInteritemSpacing = 5;
stickerFlowLayout.sectionInset = UIEdgeInsetsMake(10, 25, 20, 25);
// Set up the collection view
collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:stickerFlowLayout];
collectionView.delegate = self;
collectionView.dataSource = self;
etc
如您所见,我们可以使用以下方法轻松设置行间距:
**stickerFlowLayout.minimumLineSpacing = 10;**
我们还可以改变其他属性
stickerFlowLayout.minimumInteritemSpacing = 5;
使用interitem间距影响项目之间的空格(类似但不同于行间距)
使用流程布局,您可以节省大量代码,并以编程方式将集合视图设置在一个地方(只需设置插入和行间距即可为我节省两个额外的不需要的功能)