美文网首页
iOS开发实战小知识——UICollectionView刷新闪屏

iOS开发实战小知识——UICollectionView刷新闪屏

作者: Eddiegooo | 来源:发表于2019-05-09 20:43 被阅读0次

首页下拉刷新,发现UICollectionView 内部刷新有闪屏问题。
具体效果如下图:


某个cell出现闪屏情况.gif

慢动作查看, 看是干掉了这块,重新加载视图的过程。 其他部分没出现这个问题,其他部分看是渐变的。


慢动作查看.gif

查看具体代码,这块是拿到数据之后创建视图的。 具体代码:

- (void)setContentData:(Model *)model {
    _model = model;
   //根据数据创建视图
}

修改了一下创建视图方式,改在layoutSubviews 里创建视图

- (void)setContentData:(Model *)model {
    _model = model;
   //做一个标记位
  _isHadAddView = NO;
}
- (void)layoutSubviews {
    [super layoutSubviews];
   if (CGRectGetHeight(self.frame) > 0 && CGRectGetWidth(self.frame) > 0 && !_isHadAddView) {
    //创建视图***
    _isHadAddView = YES;
  }  
}

修改完了之后,这块是不闪屏了,但是又发现整体闪屏了,真是日了狗: 如下闪瞎眼的。。


UICollectionView 刷新闪屏.gif

在查找方法,好多遇见UICollectionView刷新闪屏的问题.UICollectionView 刷新闪屏修复; 但是在我这边都不生效。
没办法我只能关闭UICollectionView刷新的隐式动画,解决问题。
reloadData时关闭动画。

- (void)refreshData {
    [CATransaction setDisableActions:YES];
    [self.collectionView reloadData];
    [CATransaction commit];
}

修复之后:


修复之后.gif
有没有没他更好的处理方法,还望不吝赐教。 万分感谢!!!

相关文章

网友评论

      本文标题:iOS开发实战小知识——UICollectionView刷新闪屏

      本文链接:https://www.haomeiwen.com/subject/zuigoqtx.html