一尘不染

如何水平居中UICollectionView单元格?

swift

我已经做过一些研究,但是找不到关于如何水平放置UICollectionView中的单元格的代码示例。

而不是第一个单元格像这样的 X00 ,我希望它像这样的 0X0 。有什么办法可以做到这一点?

编辑:

可视化我想要的东西:

在此处输入图片说明

当CollectionView中只有一个元素时,我需要它看起来像版本B。当我获得多个元素时,它应该类似于版本A,但具有更多元素。

目前,当我只有1个元素时,它看起来像版本A,而我不知道如何使它看起来像B。

谢谢您的帮助!


阅读 1018

收藏
2020-07-07

共1个答案

一尘不染

如果您的目的仅是使用此库(即居中对齐),则使用库不是一个好主意。

更好的是,您可以在collectionViewLayout函数中执行此简单计算。

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {

    let totalCellWidth = CellWidth * CellCount
    let totalSpacingWidth = CellSpacing * (CellCount - 1)

    let leftInset = (collectionViewWidth - CGFloat(totalCellWidth + totalSpacingWidth)) / 2
    let rightInset = leftInset

    return UIEdgeInsets(top: 0, left: leftInset, bottom: 0, right: rightInset)
}
2020-07-07