当 collectionView 在加载更多时,网络数据返回后,直接添加到模型数组里面,然后调用 collectionView.reloadData
,这样每次刷新,屏幕都会闪一下,多么刺眼。
没有上图的原因是,录屏生成的 Gif 图片没法看清闪屏现象。
解决办法
-
用
collectionView?.insertItemsAtIndexPaths:_
来代替collectionView.reloadData
-
示例代码:
// 模型数组
var posts = Post {
didSet {
let addCount = posts.count - oldValue.count
// 这里可以判断 addCount 是否大于 0,等于 0 直接 return
var indexPathArray = NSIndexPath
for count in 0..<addCount {
let indexPath = NSIndexPath(forItem: oldValue.count + count, inSection: 0)
indexPathArray.append(indexPath)
}
collectionView?.insertItemsAtIndexPaths(indexPathArray)
}
}
网友评论