当前位置:  开发笔记 > 编程语言 > 正文

UITableViewCell中的UIImageView没有得到更新

如何解决《UITableViewCell中的UIImageView没有得到更新》经验,为你挑选了1个好方法。

我正在创建一个UITableViewCell包含一个UIImageView和一些相关文本的自定义.我从互联网上获取图像,当图像加载时,我显示一个临时的UIImage.

我正在使用一个单独的线程来获取UIImage.一旦UIImage下载,我在主线程上触发一个方法来设置图像UIImageView(获取UIImageView使用标签的实例)

但无论我做什么,图像都不会改变.单元格仍然显示较旧的图像(对应于不同的行 - 由于重复使用单元格)并且不反映新图像.日志语句显示正在调用设置图像的方法.

我甚至尝试将图像更改为静态图像,willDisplayCell:forRowAtIndexPath: 但即使这样,图像也不会改变.

编辑
我打过电话reloadDataUITableView改变后UIImage,但UIImage依然不改.

这是相关的代码段

的cellForRowAtIndexPath

        image = [imagesArray valueForKey:[NSString stringWithFormat:@"%i",indexPath.row]];
        if(image == nil){
            //display temporary images. When scrolling stops, detach new thread to get images for rows visible
            NSString *pth = [[NSBundle mainBundle] pathForResource:@"folder" ofType:@"png"];
            image = [UIImage imageWithContentsOfFile:pth];
            [imgView setImage:image];
        }
        else{
            [imgView setImage:image];
        }

下载图像后在主线程上调用的方法

-(void)setImageInArray:(NSIndexPath *)indPath{
    [filesTable reloadData];
}

在线程中,我将UIImage对象添加到imagesArray.因此,当下次cellForRowAtIndex调用该方法时reloadData,UIImage应显示新方法.



1> codelogic..:

UITableView的单元格被缓存,因此在渲染单元格之后修改它将不起作用.reloadData更新UIImageView后,尝试向表发送消息.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有