如何向 UICollectionView 添加适当的填充?

Beh*_*ahi 3 xcode ios uicollectionview uicollectionviewcell swift

我的 UICollectionView 的背景图像在宽度和高度方面总是比 UICollectionView 小。这是图片(背景白色是整个 UICollectionView 大小):

内容在 UICollectionView 之外

正如您从图片中看到的,这会导致内容超出背景图像。当我向右滚动时,会发生这种情况(我清除了 CollectionView 的背景颜色):

在此处输入图片说明

这是 CollectionView 的大小检查器:

集合视图大小检查器

如何减小 CollectionView 中单元格容器的大小?

或者解决这个问题的正确方法是什么?

小智 7

有3种方法可以解决您的问题:

  1. 在 Storyboard 或 .xib 上:将图像和集合视图拆分为两个不同的 UI 元素。使 CollectionView 约束在图像视图内。将集合视图的前导、顶部、尾随和底部约束与图像视图的相同约束对齐,偏移量为 10,或 15 为前导和尾随。

  2. 在代码中:如果使用 UICollectionViewFlowLayout,则可以使用 UICollectionViewDelegateFlowLayout 方法:

public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { }

返回UIEdgeInsets(top: 0, left: 15, bottom: 0, right: 15),以便您的部分的左右边缘填充到背景图像更深一点。

  1. 在代码中:用于collectionView.contentInset = UIEdgeInsets(top: 0, left: 15, bottom: 0, right: 15)将集合视图的整个内容更深入地移动到背景图像中。