如何居中对齐我的collectionView单元格?

时间:2017-12-13 19:21:53

标签: ios swift uicollectionview uicollectionviewflowlayout

我尝试了这个解决方案here,但它似乎只适用于垂直布局。我试图让它适用于水平布局。在我的情况下,我总是希望在顶部有3个单元格,在底部有2个中心对齐的单元格。

实施例:Example

1 个答案:

答案 0 :(得分:0)

我认为这应该对你有所帮助(我在委托方法中定义了insets,因为collectionview会以我的第一部分为中心并且保持其他部分不受影响):

class CollectionViewFlowLayout: UICollectionViewFlowLayout {

    // MARK: - Constants

    private struct Constants {
        static let minimumInteritemSpacing: CGFloat = 12.5
        static let minimumLineSpacing: CGFloat = 16.5
        static let itemSize = CGSize(width: 64.0, height: 90.0)
    }

    override func prepare() {

        guard let collectionView = collectionView else { return }

        /// Defining flow layout for collectionview presentation
        itemSize = Constants.itemSize

        headerReferenceSize = CGSize(width: collectionView.dc_width, height: 1)
        scrollDirection = .vertical
        minimumInteritemSpacing = Constants.minimumInteritemSpacing
        minimumLineSpacing = Constants.minimumLineSpacing

        super.prepare()
    }
}

此外,布局由类定义:

    <body>
       <h1>Der Gecko<h1>                
       <h2>(lat. Gekko gecko)<h2>
    <body>