Swift:UICollectionView-固定的单元格之间的空间

时间:2019-08-22 10:02:16

标签: ios swift uicollectionview uicollectionviewlayout

我使用UICollectionView列出了UIButton个不同大小的列表。在情节提要中,我为集合视图设置了前导和尾随约束(每个像素与安全区域相关的像素为20px)。那就是我得到的:

result

如您所见,为了使单元格“合理化”,增加了单元格之间的空间(我在情节提要中设置)。那不是我想要的,我想在单元格之间有固定的空间,并最终在行尾增加空间。有可能吗?

2 个答案:

答案 0 :(得分:0)

import UIKit

class CustomImageFlowLayout: UICollectionViewFlowLayout {

override init() {
    super.init()
    setupLayout()
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    setupLayout()
}

func setupLayout() {
    minimumInteritemSpacing = 1
    minimumLineSpacing = 1
    scrollDirection = .vertical
}

override var itemSize: CGSize {
    set {

    }
    get {
        let numberOfColumns: CGFloat = 3 //no of columns

        let itemWidth = (self.collectionView!.frame.width - (numberOfColumns - 1)) / numberOfColumns
        return CGSize(width: itemWidth, height: itemWidth + 5)
    }
}
}


On your collection view controller 

@IBOutlet weak var colectionvw: UICollectionView!

var collectionViewLayout: CustomImageFlowLayout!

override func viewDidLoad()
{
    super.viewDidLoad()
    collectionViewLayout = CustomImageFlowLayout()
    colectionvw.collectionViewLayout = collectionViewLayout
}

答案 1 :(得分:0)

您可以通过将CollectionView scrollDirection设置为Horizo​​ntal来解决此问题。这将自动设置大小并根据需要进行排列。