如何在具有垂直滚动网格的 UICollectionView 中设置列​​之间的间距

How to set spacing between columns in a UICollectionView with a vertical scrolling grid

我对 UICollectionViewFlowLayout 复杂的话题有点陌生,是的!!我已经检查了所有与主题相关的问题,但我仍然卡住了。

我想要实现的是在 UICollectionView 中使用 垂直网格布局 设置 之间的间距。从之前关于 "how to set spacing on UIcollectionViewCells" 主题的所有问题中,我尝试失败的主要答案是:

  1. 使用 minimumInteritemSpacingminimumLineSpacing

  2. 使用func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {

由于某种原因,第二个解决方案没有达到我的目标 第一个解决方案在 垂直网格布局 中没有帮助,正如苹果文档在 collectionView(_:layout:minimumLineSpacingForSectionAt:) 上的指示:

对于垂直滚动的网格,此值表示连续行之间的最小间距。对于水平滚动的网格,此值表示连续列之间的最小间距

我的问题是:我怎样才能做一个简单的解决方法,以便我可以在垂直 collectionView 中设置 之间的间距,因为退出 minimumInteritemSpacingminimumLineSpacing 仅适用于水平网格上的列。

单元格(列)之间的间距由collectionView的宽度和单元格的宽度以及"Minimum Spacing for Cells"决定。

因此,如果您的 collectionView 宽度为 300 磅,而您的单元格宽度为 100 磅,则 3 个单元格 * 100 == 300。

如果您的最小间距为零,您将在每行上获得 3 个间距为零的单元格。

如果您将最小间距设置为 40,则 3 个单元格 * 100 + (2 spaces * 40) == 380... 这太宽了,因此每个单元格只会有 2 个单元格行,space 之间将是 300 - (100 * 2) == 100。

因此,要在单元格(列)之间获得特定的、固定的space,您需要计算所需的总宽度,然后更改宽度或部分您的 collectionView 的插图。