我正在创建一个UITableViewCell
包含一个UIImageView
和一些相关文本的自定义.我从互联网上获取图像,当图像加载时,我显示一个临时的UIImage
.
我正在使用一个单独的线程来获取UIImage
.一旦UIImage
下载,我在主线程上触发一个方法来设置图像UIImageView
(获取UIImageView
使用标签的实例)
但无论我做什么,图像都不会改变.单元格仍然显示较旧的图像(对应于不同的行 - 由于重复使用单元格)并且不反映新图像.日志语句显示正在调用设置图像的方法.
我甚至尝试将图像更改为静态图像,willDisplayCell:forRowAtIndexPath:
但即使这样,图像也不会改变.
编辑
我打过电话reloadData
的UITableView
改变后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
应显示新方法.
UITableView的单元格被缓存,因此在渲染单元格之后修改它将不起作用.reloadData
更新UIImageView后,尝试向表发送消息.