UICollectionView - 单元格之间的距离?

Sar*_*ios 26 objective-c storyboard ios uicollectionview uicollectionviewflowlayout

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

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

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

Ani*_*ese 43

这个 UICollectionViewFlowLayoutDelegate方法可以帮到你..

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

如果您需要更多空间来安排您的细胞,edgeInsets还可以调整一次

  • 这设置了最小值,但是如何设置最大值? (4认同)
  • 只能保证minimumInteritemSpacing.您无法设置最大或实际的项目间距.实际值取决于项目大小,sectionInset和minimumInteritemSpacing.因此,请调整这些值以获得适当的行为.集合视图流布局是动态决定实际值. (3认同)

Aam*_*mir 20

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

[self.collectionView setMinimumLineSpacing:5];
Run Code Online (Sandbox Code Playgroud)

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

[self.collectionView setMinimumInteritemSpacing:5];
Run Code Online (Sandbox Code Playgroud)

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


小智 17

这个.您需要更改minimumInteritemSpacingminimumLineSpacing.

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


mat*_*att 10

不,它没有.只需更改布局即可minimumInteritemSpacing.


Tan*_*ain 6

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

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionView *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section  
Run Code Online (Sandbox Code Playgroud)

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

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section 
Run Code Online (Sandbox Code Playgroud)

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

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