如下圖要實(shí)現(xiàn)內(nèi)容居左對(duì)齊,先獲取每個(gè)cell的寬度,然后自定義UICollectionViewFlowLayout,以下方法只是實(shí)現(xiàn)簡(jiǎn)單需求:

image.png
第一步自定義UICollectionViewFlowLayout
class SelectTypeFlowLayout: UICollectionViewFlowLayout {
override func prepare() {
super.prepare()
minimumLineSpacing = 15 //cell的間距
minimumInteritemSpacing = 10
sectionInset = UIEdgeInsetsMake(0, ScaleWidth(15), 0, ScaleWidth(15))
collectionView?.alwaysBounceVertical = true
}
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
//獲取系統(tǒng)幫我們計(jì)算好的Attributes
let layoutAttributes = super.layoutAttributesForElements(in: rect)
for i in 1..<layoutAttributes!.count {
//獲取cell的Attribute,根據(jù)上一個(gè)cell獲取最大的x,定義為originX
let current = layoutAttributes![i]
let last = layoutAttributes![i-1]
let originX = last.frame.origin.x + last.frame.size.width
if current.frame.origin.y == last.frame.origin.y {
current.frame.origin.x = originX+minimumInteritemSpacing
}
}
return layoutAttributes
}
}