Collectionview固定单元格间距

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Collectionview固定单元格间距相关的知识,希望对你有一定的参考价值。

我一直在寻找如何使UICollectionView在其细胞之间有固定的间距,但到目前为止还没有找到解决方案。

我有一个由两列组成的UICollectionView,所有的单元格都有相同的宽度,但它们的高度不同。我在这个UICollectionView只有一个部分。

我已将最小间距设置为10(这是我在垂直单元格之间想要的值),但系统似乎随机地拉伸垂直空间。

我想要实现的是,维基百科iPad的效果是:不同的文章瓷砖具有相同的宽度,但可根据需要调整高度,但所有单元格均匀垂直的空间。 (我不介意在最后留空间,但我不想在中间留出额外的空间)

我该怎么做到这一点?如果很容易迁移现有的UICollectionViews(当然它是开源的),我会接受第三方库。

答案

在swift 3中,您可以在collectionView中为单元格间距实现此委托方法:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize{
    // Give cell width and height
    return CGSize(width: 750, height: 320)
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat{
    // splace between two cell horizonatally
    return 50
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat{
    // splace between two cell vertically
    return 100
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets{
    // give space top left bottom and right for cells
    return UIEdgeInsets(top: 0, left: 100, bottom: 100, right: 100)
}
另一答案

好吧,原因毕竟是我设置的间距是单元格之间的MINIMUM间距。 collectionView可以使用在同一行上对齐单元格所需的任何间距,只要它不小于最小值。

以上是关于Collectionview固定单元格间距的主要内容,如果未能解决你的问题,请参考以下文章

当单元格具有动态宽度时,CollectionView 中的间距不正确?

更改 CollectionView 单元格的垂直间距

iOS - 如何使用自定大小的 CollectionView 单元格设置锚点以调整换行符的间距

collectionview 单元格动态宽度打破布局

Swift 3 collectionView 如何设置间距。

Collectionview 单元后的间距