Skip to content

Repository files navigation

瀑布流布局工具

  • item之间的宽固定
  • line之间的高固定

待解决问题

多次调用prepare方法,导致大量top的计算

完成

待解决问题完成,可显示区域优化


数据量多的时候不流畅问题待解决


卡顿原因为多次调用prepare方法导致,调用prepare的原因为

 override func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> Bool {
return true
}

这个实现,一滑动就把当前布局失效导致计算布局过多,解决方法是去除该实现,下面方法从

override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
var result = self.itemAttributes.filter { (layout:UICollectionViewLayoutAttributes) -> Bool in
return rect.intersects(layout.frame)
}
_ = self.sectionHeaderAttributes.filter { (layout:UICollectionViewLayoutAttributes) -> Bool in
if rect.intersects(layout.frame) {
result.append(layout)
}
return true
}
_ = self.sectionFooterAttributes.filter { (layout:UICollectionViewLayoutAttributes) -> Bool in
if rect.intersects(layout.frame) {
result.append(layout)
}
return true
}
return result
}

改为

override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
let result = self.itemAttributes + sectionHeaderAttributes + sectionFooterAttributes;
return result
}

About

固定collectionView行高和行宽的一个布局对象

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages