UICollectionView – 单元格之间的距离?

我正在使用单元格宽度为67的UICollectionView,现在我正在使用流布局。

我连续有3个细胞,细胞之间有30px的空间。 怎么能减少这个距离,以便我可以连续安装四个细胞? 这种方法与它有关吗?

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section { return UIEdgeInsetsMake(10, 10, 10, 10); } 

这个UICollectionViewFlowLayoutDelegate方法将帮助你..

 - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionView *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { return 10; // This is the minimum inter item spacing, can be more } 

如果您需要更多空间来排列单元格,还可以调整edgeInsets

从此。 您需要更改minimumInteritemSpacingminimumLineSpacing

 UICollectionViewFlowLayout *flow = [[UICollectionViewFlowLayout alloc] init]; flow.itemSize = CGSizeMake(cellWidth, cellHeight); flow.scrollDirection = UICollectionViewScrollDirectionHorizontal; flow.minimumInteritemSpacing = 0; flow.minimumLineSpacing = 0; mainCollectionView.collectionViewLayout = flow; 

您可以使用以下属性配置单元格或行之间的间距。
1)用于在行之间设置空间。

 [self.collectionView setMinimumLineSpacing:5]; 

2)用于设置项目/单元格之间的空间。

 [self.collectionView setMinimumInteritemSpacing:5]; 

您也可以从InterfaceBuilder(IB)配置它。 只需从storyboard / Xib文件中选择UICollectionView,然后单击下图中指定的Size Inspector在此处输入图像描述

不,它没有。 只需更改布局的minimumInteritemSpacing

您可以使用委托方法,如: – 用于更改节中单元格之间的空间。

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

用于显示不同部分的单元格之间的顶部,底部y填充。

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

//布局:设置边缘//为单元格设置插入

 - (UIEdgeInsets)collectionView: (UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section //top,left,botttom,right 

swift 3.0

  func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { if DEVICE_IDIOM == .pad { return 15.0 } else { return 10.0 } } 

我遇到过同样的问题..

在我的情况下,我需要一个retangular单元格。

为了达到预期的效果,我使用了UICollectionViewDelegateFlowLayout

这是我实现的方法之一:

 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath; { CGFloat width = CGRectGetWidth(self.view.frame)/3.0f; return CGSizeMake(width, (width * 1.1f)); } 

这对我来说很好! 我希望它对某人有帮助。