ios UICollectionView在单元格之间的顶部/底部分离

时间:2013-08-03 05:45:00

标签: ios uicollectionview

我有一个集合视图,工作正常,我调整了X填充的分隔,

它工作正常, 但对于细胞之间的Y填充,似乎不适应NO分离

这是我的布局代码

UICollectionViewFlowLayout *layoutItem=[[UICollectionViewFlowLayout alloc] init];
    layoutItem.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);

enter image description here 那么如何将顶部/底部的间距设置为0px?在细胞之间?,

谢谢!

2 个答案:

答案 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);
}

输出将是第一次..

enter image description here

向上滚动collectionView时,您会看到底部填充..

enter image description here

将其用于单元格之间的垂直线间距

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
{
    return 5;
}

看起来像

enter image description here

答案 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间距影响项目之间的空格(类似但不同于行间距)

使用流程布局,您可以节省大量代码,并以编程方式将集合视图设置在一个地方(只需设置插入和行间距即可为我节省两个额外的不需要的功能)