您好,有一个收藏夹视图。 每个单元的宽度为screenwidth / 3。表示连续3个单元格。 现在。如果有10或11个像元,则将有4行。最后一行有1或2个单元格。 问题是,我想在不更改其大小的情况下将这些单元对齐到中心。现在单元格左对齐。
答案 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)
设置其他适合您的委托方法。