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

How to add the appropriate padding to the UICollectionView?

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

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

这是 CollectionView 的大小检查器:

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

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

我不太明白你的问题,但你可以在大小检查器中更改集合视图单元格的大小。

查看底部“视图”部分的屏幕截图。只需给尺寸一个更大的 X 和一个更小的宽度。更好的是,使用自动布局来调整 collection 视图相对于其父视图的大小。

至于您的图片,请不要将其设为 collection 视图的背景图片。只需将其设为 collection 视图后面的图像即可。

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

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

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

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

到returnUIEdgeInsets(top: 0, left: 15, bottom: 0, right: 15),这样你的部分的左边缘和右边缘填充到背景图像中稍微深一点。

  1. 在代码中:使用 collectionView.contentInset = UIEdgeInsets(top: 0, left: 15, bottom: 0, right: 15) 将 collection 视图的全部内容移动到背景图像的更深处。