我正在創建一個自定義UITableViewCell
以包含UIImageView
和一些相關文本。我從互聯網獲取圖像,並在圖像加載時顯示臨時文件UIImage
。UITableViewCell中的UIImageView沒有得到更新
我正在使用單獨的線程獲取UIImage
。一旦UIImage
下載,我在主線程燒製方法設置在UIImageView
的圖像(獲得的UIImageView
使用標籤實例)
但無論我做什麼,圖像不會改變。細胞仍然顯示較舊的圖像(對應於不同的行 - 由於重新使用細胞)並且不反映新圖像。日誌語句顯示正在調用設置圖像的方法。
我甚至試圖將圖像更改爲靜態圖像willDisplayCell:forRowAtIndexPath:
但即使如此,圖像不會改變。
編輯
我試圖改變UIImage
後呼籲UITableView
reloadData
,但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
。所以當下一次在reloadData
上調用cellForRowAtIndex
方法時,應該顯示新的UIImage
。