【问题标题】:Equal spacing around UICollectionViewCellsUICollectionViewCells 周围的等间距
【发布时间】:2016-04-26 19:09:23
【问题描述】:

我希望所有单元格之间以及屏幕边框和最近的单元格之间的间距相等。基本上是这样的。内部和周围的间距相等。

我设法通过设置这样的值在界面构建器中对此进行了测试。我将 cell size 设置为 110,Min spacing 设置为 0,所有 Section Insets 设置为 10。

它在 IB 中看起来很完美。

但是当我运行它时(在 iPad Air 2 中),它看起来像这样。

请注意单元格之间的间距更大。我还尝试通过在UICollectionViewDelegateFlowLayout 中实现以下方法来仅从代码中执行此操作。

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    return CGSize(width: 110, height: 110)
}

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
    return UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
}

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat {
    return 0
}

这产生了相同的结果。谁能告诉我如何纠正这个问题?我宁愿通过代码来做到这一点。但我对任何事情都持开放态度。

【问题讨论】:

    标签: ios gridview layout uicollectionview uicollectionviewlayout


    【解决方案1】:

    不幸的是,UICollectionViewFlowLayout 默认是这样工作的。那是因为您指定了精确的部分插图但最小的项目间空间。 要按照您的要求进行操作,您主要有两种方法可以做到这一点,具体取决于您想要的最终结果。两者都必须通过代码手动完成。

    • 放大单元格以留下确切的空间(相同的空间,更大的单元格)

    • 计算空间并更改插入以匹配它(相同的单元格,更大的空间)

    两者都可以通过在布局对象上设置值(并使其无效)或通过委托返回值来完成。

    【讨论】:

      猜你喜欢
      • 2019-05-25
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多