例如:
出现原因: 浮点数除法导致cell在布局时frame有误差。
解决办法:只需要继承 Layout,重写一个成员即可:
class MyCollectionViewFlowLayout: UICollectionViewFlowLayout {
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
let attributes = super.layoutAttributesForElements(in: rect)
guard attributes != nil else { return nil }
for i in 1..<attributes!.count {
let current = attributes![i]
let original = attributes![i-1].frame.maxX
if original + current.frame.width <= collectionViewContentSize.width {
current.frame.origin.x = original
}
}
return attributes
}
}
在你原来声明 layout 的地方,改写成:
let layout = MyCollectionViewFlowLayout()
其余代码一点不需要修改,即可去除分割线!