UICollectionViewCell 间距

Posted

技术标签:

【中文标题】UICollectionViewCell 间距【英文标题】:UICollectionViewCell spacing 【发布时间】:2013-12-13 17:30:13 【问题描述】:

我有一个 UICollectionView,它在宽度上适合 3 个单元格(并垂直滚动)。当我改变设备的旋转时,集合视图会拉伸一点,单元格间距也会增加一点。然而,左边的单元格对齐到左边距,右边的单元格对齐到右边距,中间的单元格保持居中。

我希望两边都有一个边距,尺寸与单元格之间的距离相等,这样看起来间隔更小。

我尝试调用[collectionView setContentInset:UIEdgeInsetsMake(0, 10, 0, 10)];,但这只是在视图中添加了一个水平滚动,而不是逼近单元格。

如何在不改变滚动视图大小的情况下添加边距?

【问题讨论】:

【参考方案1】:

我想通了。我不得不添加这个委托方法:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section 
  return UIInterfaceOrientationIsPortrait([self interfaceOrientation]) ? UIEdgeInsetsMake(0, 22, 0, 21) : UIEdgeInsetsMake(0, 0, 0, 0);

并刷新- willRotateToInterfaceOrientation:duration:上的集合视图:

  [[_collection collectionViewLayout] invalidateLayout];
  [_collection reloadData];

【讨论】:

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

UICollectionViewCell 间距以填充最大区域

以没有中间间距的方式设置 UICollectionViewCell 的大小

删除每个 UICollectionViewCell 之间的间距并将其移动到 UICollectionView 的外部单元格

相等的水平间距UICollectionView,包括插图 - UICollectionViewFlowLayout?

iOS - 删除 UICollectionViewCell 之间的垂直空间

iOS UICollectionViewCell