如何居中对齐 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 的左侧

如何正确对齐这些 collectionview 单元格?

如何正确对齐这些collectionview单元格?

如何通过CollectionView中的Flow Layout将单元格对齐到顶部

请问在java JTable中如何设置单元格字体居中对齐?

Microsoft Excel对齐方式如何设置水平居中?