14

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

它工作正常,但对于单元格之间的 Y 填充,似乎没有适应 NO 分离

这是我的布局代码

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

在此处输入图像描述 那么如何将顶部/底部的分隔设置为 0px?细胞之间?,

谢谢!

4

2 回答 2

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;
}

看起来像

在此处输入图像描述

于 2013-08-03T06:34:30.127 回答
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;

项目间间距影响项目之间的间距(与行间距相似但不同)

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

于 2014-06-19T05:59:28.333 回答