【问题标题】:How to set spacing between columns in a UICollectionView with a vertical scrolling grid如何使用垂直滚动网格在 UICollectionView 中设置列​​之间的间距
【发布时间】:2018-07-15 08:28:45
【问题描述】:

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

我想要实现的只是在UICollectionView 中使用垂直网格布局 设置 之间的间距。从之前关于“如何在UIcollectionViewCells”主题上设置间距的所有问题中,我尝试失败的主要答案是:

  1. 使用minimumInteritemSpacingminimumLineSpacing

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

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

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

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

【问题讨论】:

  • 您的单元格的宽度是变化的还是恒定的?
  • @DonMag。你是指sizeForItemAt indexPath 函数吗?
  • 不,我的意思是:每个单元格的宽度是否相同?比如——每个单元格都是100x100的imageView?或者,第一个单元格是 100x100 的图像,第二个单元格是 150 磅宽的标签,第三个单元格是 60x60 的图像,等等?
  • @DonMag 是的。我已将sizeForItem 函数中的所有单元格设置为相同的CGSize。单元格之间的大小没有差异

标签: ios swift3 uicollectionview


【解决方案1】:

单元格(列)之间的间距由collectionView的宽度和单元格的宽度以及“单元格的最小间距”决定。

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

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

如果您将最小间距设置为 40,则 3 个单元格 * 100 + (2 个空格 * 40) == 380... 这太宽了,所以每行将只有 2 个单元格,并且之间的空间将为 300 - (100 * 2) == 100。

因此,要在单元格(列)之间获得一个特定的固定空间,您需要计算所需的总宽度并更改宽度或您的 collectionView 的 Section Insets。

【讨论】:

    猜你喜欢
    • 2013-10-15
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 2020-11-25
    • 2011-02-14
    • 2021-01-18
    相关资源
    最近更新 更多