如果使用系统提供的UICollectionViewFlowLayout
,当 UICollectionViewCell 宽度自适应且只有一个时,其展示方式如下:

然而我们有时并不希望它居中,而是想让它靠左边展示,这该如何操作?
Easy,对UICollectionViewFlowLayout
进行简单改造即可:
class LeftSideLayout: UICollectionViewFlowLayout {
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
let attributes = super.layoutAttributesForElements(in: rect)
if attributes?.count == 1 {
if let currentAttribute = attributes?.first {
currentAttribute.frame = CGRect(x: self.sectionInset.left, y: currentAttribute.frame.origin.y, width: currentAttribute.frame.size.width, height: currentAttribute.frame.size.height)
}
}
return attributes
}
}
效果:

网友评论