如何居中对齐CollectionView单元格?

时间:2018-08-31 09:25:42

标签: ios swift uicollectionview alignment

您好,有一个收藏夹视图。 每个单元的宽度为screenwidth / 3。表示连续3个单元格。 现在。如果有10或11个像元,则将有4行。最后一行有1或2个单元格。 问题是,我想在不更改其大小的情况下将这些单元对齐到中心。现在单元格左对齐。

注意:我想在一个部分中实现此目的(因为collection-view已经有多个部分)。 图片附有我要实现的目标。enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用多个部分来解决此问题。节数应该是

numberOfSection = totalItemCount/3 > Int(totalItemCount/3) ? Int(totalItemCount/3) + 1 : Int(totalItemCount/3)

不要使用天花板。然后,该部分中的项目数应为

numberOfItemInSection = totalItemCount-section*3 < 3 ? totalItemCount-section*3 : 3

然后实现UICollectionViewDelegateFlowLayout委托。在collectionView(_ collectionView:, layout:, insetForSectionAt:)设置中的

let minimumInterItemSpacing: CGFloat = 8.0
// minimumInterItemSpacing should be same in the delegate function
let itemCountInSection = collectionView.numberOfItems(inSection: section)
let edgeSpace = (collectionView.bounds.width - ((itemCountInSection*self.itemWidth) + (minimumInterItemSpacing*(itemCountInSection-1)))) / 2
return UIEdgeInsets(top: self.topSpace, left: edgeSpace, bottom: self.bottomSpace, right: edgeSpace)

设置其他适合您的委托方法。