Collectionview固定单元格间距

问题描述 投票:0回答:2

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

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

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

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

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

ios swift uicollectionview
2个回答
2
投票

在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)
}

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.