如何居中对齐 CollectionView 单元格?
Posted
技术标签:
【中文标题】如何居中对齐 CollectionView 单元格?【英文标题】:How to center align CollectionView Cell? 【发布时间】:2018-08-31 09:25:41 【问题描述】:你好有一个collectionview。 每个单元格的宽度是屏幕宽度/3。表示连续 3 个单元格。 现在。如果有 10 或 11 个单元格,则将有 4 行。最后一行有 1 或 2 个单元格。 问题是,我想在不改变其大小的情况下将这些单元格对齐到中心。现在单元格左对齐。
注意:我想在一个部分中实现这一点(因为集合视图已经有多个部分)。 图片附上我想要实现的目标。
【问题讨论】:
这可能会有所帮助。 ***.com/a/30104749/7734643 我已经尝试过了。但结果和我想要的不一样 您可以尝试增加单元格宽度,这不是您想要的,但如果您连续有 1 或 2 个单元格,它可以让您看起来更漂亮。 根据设计,我不能增加宽度。宽度应该相同,但单元格将居中对齐 @TaimoorSuleman 你有什么解决办法吗? 【参考方案1】:您可以使用多个部分来解决此问题。节数应该是
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)
设置适合您的其他委托方法。
【讨论】:
在 Collectionview 中,我们已经有多个部分。附上的这张图片是一个部分。所以我不能这样做。以上是关于如何居中对齐 CollectionView 单元格?的主要内容,如果未能解决你的问题,请参考以下文章
将单个 UICollectionViewCell 对齐到 collectionView 的左侧