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 中的间距不正确?
iOS - 如何使用自定大小的 CollectionView 单元格设置锚点以调整换行符的间距