iOS-Swift-UICollectionViewCell居左显示

如下图要实现内容居左对齐,先获取每个cell的宽度,然后自定义UICollectionViewFlowLayout,以下方法只是实现简单需求:
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]? {
        //获取系统帮我们计算好的Attributes
        let layoutAttributes = super.layoutAttributesForElements(in: rect)
        
        for i in 1..<layoutAttributes!.count {
            //获取cell的Attribute,根据上一个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
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容