如果使用系统提供的UICollectionViewFlowLayout
,当 UICollectionViewCell 宽度自适应且只有一个时,其展示方式如下:
![](https://img.haomeiwen.com/i1692043/60876f7a95af7b69.png)
然而我们有时并不希望它居中,而是想让它靠左边展示,这该如何操作?
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
}
}
效果:
![](https://img.haomeiwen.com/i1692043/e2e77ededd0dade8.png)
网友评论