处理swift使用自动布局的时候,collectionView设
作者:
sws1314 | 来源:发表于
2021-06-24 11:51 被阅读0次
处理swift使用自动布局的时候,collectionView设置间距与实际不符的问题
class SWSCollectionViewFlowLayout: UICollectionViewFlowLayout {
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
let atteibutes: [UICollectionViewLayoutAttributes] = super.layoutAttributesForElements(in: rect)!
// 从第二个循环到最后一个
for index in 1..<atteibutes.count {
// 当前attributes
let currentLayoutAttributes: UICollectionViewLayoutAttributes = atteibutes[index]
// 上一个attributes
let preLayoutAttributes: UICollectionViewLayoutAttributes = atteibutes[index - 1]
//我们想设置的最大间距,可根据需要改
let maximumSpace: CGFloat = 0
// 前一个cell的最右边
let origin = preLayoutAttributes.frame.maxX
// 如果当前一个cell的最右边加上我们想要的间距加上当前cell的宽度依然在contentSize中,我们改变当前cell的原点位置
// 不加这个判断的后果是,UICollectionView只显示一行,原因是下面所有cell的x值都被加到第一行最后一个元素的后面了
if origin + maximumSpace + currentLayoutAttributes.frame.size.width < self.collectionViewContentSize.width {
var frame = currentLayoutAttributes.frame
frame.origin.x = origin + maximumSpace
currentLayoutAttributes.frame = frame
}
}
return atteibutes
}
}
本文标题:处理swift使用自动布局的时候,collectionView设
本文链接:https://www.haomeiwen.com/subject/vqmwyltx.html
网友评论