我一直在寻找如何使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可以使用在同一行上对齐单元格所需的任何间距,只要它不小于最小值。