【问题标题】:CollectionView. Maximum distance between Item. Swift 3集合视图。项目之间的最大距离。斯威夫特 3
【发布时间】:2018-06-24 02:09:06
【问题描述】:

我知道物品之间只有最小间距,您可以通过尺寸检查器或

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

确实在 SE 上的模拟器上,我的物品如下图所示。

但是当我在更大的模拟器上运行时,我的单元格项目之间的距离正在增加,并且没有按预期显示。

有什么方法可以设置它们之间的最大尺寸吗?

【问题讨论】:

  • 那么,你想让它们之间的空间永远是零点吗?
  • 像 5 x pts 或类似的东西。
  • 您也应该提供单元格宽度。之间的空间并不是真正的属性。它将根据单元格宽度而变化。根据当前屏幕大小计算单元格宽度。

标签: ios swift swift3 uicollectionview uicollectionviewcell


【解决方案1】:

从逻辑上讲,在设置集合视图中的项目之间的空间时,您应该记住另一个因素,即单元格的 大小。如果您按原样获取单元格(使用其默认大小)-我的假设是您的情况-,它将在集合视图中静态出列,即单元格的大小将保持不变。

所以,你应该做的是告诉集合视图中要显示的单元格的所需大小(宽度),通过符合 UICollectionViewDelegateFlowLayout 和实现collectionView(_:layout:sizeForItemAt:)

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    // let's assume that each row in the collection view should contains 3 cells:
    let desiredWidth = collectionView.frame.width / 3

    // height is also equals to the width to be a square...
    return CGSize(width: desiredWidth, height: desiredWidth)
}

此时,如果您将项目之间的最小间距设置为零,则每行应包含三个单元格,它们之间没有空格。

如果您打算在单元格之间设置一点空间,则应在声明单元格所需的宽度时反映它,例如:

// since each row contains 3 cells, subtracting 2 from each cell width
// means it would be 6 points (3 * 2) divided at the whole row (2 spaces, 3 points for each)
let desiredWidth = collectionView.frame.width / 3 - 2

【讨论】:

  • 其实我在调用'func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { return CGSize(width: 100, height: 280) }'
  • 你上面说的对我有帮助。确实如此。但是如果我想要确切的宽度呢?
  • 实际上我的单元格项目宽度正在根据设备扩展
  • @FagadaruMarcel 如果我没记错的话,如果单元格宽度应该始终保持不变,无论设备屏幕的大小是多少,毫无疑问,单元格之间会有空格: )
  • 好吧,我照你说的做了,但我也想返回 UIEdgeInsets(top: 0, left: 5, bottom: 10, right: 5)...左右有一点间距所以我的单元格不坚持设备布局.. 现在它只显示我 2 个单元格
猜你喜欢
  • 2018-02-10
  • 2017-03-24
  • 2018-02-11
  • 1970-01-01
  • 1970-01-01
  • 2017-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多