Swift版为UICollectionViewFlowLayout添加maximumInteritemSpacing

声明一下,本人只是把下面的文章改成了swift版本而已,方便以后直接用。

效果图如下


historyRecord.jpg

创建一个layout为CustomClvFlowLayout,然后设置maximumInteritemSpacing为自己的需求即可了。

let layout = LLCustomClvFlowLayout()
layout.maximumInteritemSpacing = 10.0
class CustomClvFlowLayout: UICollectionViewFlowLayout {
    var maximumInteritemSpacing: CGFloat = 0.0
    
    override func prepare() {
        super.prepare()
    }
    
    override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
        super.layoutAttributesForElements(in: rect)
        
        //使用系统帮我们计算好的结果
        guard let attributes = super.layoutAttributesForElements(in: rect) else {
            return nil
        }
        
        //第0个cell没有上一个cell,所以从1开始
        for i in 1.. targetX {
                // 换行时不用调整
                if targetX + curAttr.frame.width < collectionViewContentSize.width {
                    var frame = curAttr.frame
                    frame.origin.x = targetX
                    curAttr.frame = frame
                }
            }
        }
        return attributes
    }
}

参考文章:https://www.jianshu.com/p/ab6252c77256

你可能感兴趣的:(Swift版为UICollectionViewFlowLayout添加maximumInteritemSpacing)