UICollectionView中的cell 左对齐
时间: 2023-08-30 15:12:23 浏览: 44
要实现UICollectionView中的cell左对齐,可以通过以下步骤:
1. 在UICollectionViewFlowLayout的子类中重写`layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]?`方法,该方法返回rect区域内所有cell的布局属性数组。
2. 遍历布局属性数组,对于每个cell的布局属性,计算它的frame,使其左对齐。
3. 计算cell的frame时,需要考虑到cell之间的间距和行间距。可以通过`minimumInteritemSpacing`和`minimumLineSpacing`属性获取。
具体实现可参考以下示例代码:
```swift
class LeftAlignedFlowLayout: UICollectionViewFlowLayout {
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
guard let attributesArray = super.layoutAttributesForElements(in: rect) else { return nil }
var leftMargin = sectionInset.left
var maxY: CGFloat = -1.0
attributesArray.forEach { attributes in
guard attributes.representedElementCategory == .cell else { return }
if attributes.frame.origin.y >= maxY {
leftMargin = sectionInset.left
}
attributes.frame.origin.x = leftMargin
leftMargin += attributes.frame.width + minimumInteritemSpacing
maxY = max(attributes.frame.maxY, maxY)
}
return attributesArray
}
}
```
在使用LeftAlignedFlowLayout时,只需要将它设置为UICollectionView的layout即可:
```swift
let layout = LeftAlignedFlowLayout()
collectionView.collectionViewLayout = layout
```