美文网首页
在iOS TableViewCell中遇到的奇怪刷新问题

在iOS TableViewCell中遇到的奇怪刷新问题

作者: 高浩浩浩浩浩浩 | 来源:发表于2024-03-03 23:00 被阅读0次

    在TableView的Cell中用到了YYLabel的富文本,然后在刷新的时候页面总是会闪一下。


    IMG_E9F10EC08145-1.jpeg

    一直以为是tableView刷新的问题导致的,最后发现是YYLabel中对富文本赋值导致的。

    这是之前出问题的代码:

        [[RACObserve(self, model) ignore:nil] subscribeNext:^(id  _Nullable x) {
              ((YYLabel *)self.detailLab).attributedText = [LHTemplateCellViewModel buildDetailTextWithModel:x];
        }];
        [[self rac_prepareForReuseSignal] subscribeNext:^(RACUnit * _Nullable x) {
            @strongify(self);
            self.iconView.image = [UIImage imageNamed:@"template_placehold"];
            ((YYLabel *)self.detailLab).attributedText = nil;
            ((YYLabel *)self.detailLab).text = nil;
        }];
    

    在YYLabel中是基于CoreText 进行绘制的一个框架,所有的元素是绘制在Layer上的。
    在清除富文本内容,这个是个异步操作,如果cell被复用,在重新赋值的时候,这里的异步操作会导致在label先显示了复用前的text内容,然后更新为新的内容,所以这里总是会闪一下。

    这里又复习了一遍YYLabel的源码,后面再详细解释一遍

    相关文章

      网友评论

          本文标题:在iOS TableViewCell中遇到的奇怪刷新问题

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