uicollectionview的间距列

Posted

技术标签:

【中文标题】uicollectionview的间距列【英文标题】:inter spacing columns of uicollectionview 【发布时间】:2013-07-09 08:33:50 【问题描述】:

我正在尝试使用 UICollectionView 创建一个单元格网格。 我会删除所有填充,单元格之间的间距。 我使用了布局方法和属性

-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section

    return 0;


- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath 

    CGSize retval = CGSizeMake(120, 120);
      return retval;


- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section

    return UIEdge

    InsetsMake(0, 0, 0, 0);

但我总是在列之间得到一个空格。

【问题讨论】:

how do you determine spacing between cells in UICollectionView flowLayout的可能重复 不是重复的。在写问题之前,我查看了您引用的问题。 这是同一个问题——你希望你的单元格相互对接而没有空格,但是集合布局在单元格之间分配了额外的空间。重复的问题是要求同样的事情。我对my answer 的评论更详细地解释了这个问题,其他答案解释了如何创建一个左对齐项目的布局,在右边留下任何额外的空间。如果您要问不同的问题,请澄清问题。 【参考方案1】:

默认情况下,UICollectionView 中的单元格总是均匀分布(水平边距相等),没有“单元格之间的最大距离”属性。如果您不希望列之间有空间,您应该选择将填充整个空间的单元格大小(即 iPad 在横向模式下为 256x256),或者通过子类化 UICollectionViewLayout 并将其与您的集合视图一起使用来制作您自己的自定义布局。

【讨论】:

【参考方案2】:

您只是设置单元格之间的 最小 间距,这是您所能做的。看起来您的集合视图的宽度略大于适合该行的单元格的宽度,因此布局会在单元格之间分配额外的空间。您可以尝试以下两件事:

将集合视图的宽度设置为单元格宽度的倍数

创建您自己的 UICollectionViewLayout 子类,根据您的喜好排列单元格

【讨论】:

谢谢你们。我将实现一个 CustomLayout,并将结果发布在问题中。 最好在答案中发布结果。可以回答您自己的问题。

以上是关于uicollectionview的间距列的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 的屏幕尺寸上,collectionview 列之间的间距不同

自定义UICollectionLayout布局 —— UIKit之学习UICollectionView记录一《瀑布流》

UIcollectionView 间距

UiCollectionView 间距问题 - 快速

UICollectionView 间距边距

UICollectionView-如何删除第一个单元格上方的间距?