使用AFNetworking 2.0的方法setImageWithUrl,我在位於UITableViewCell中的imageView中設置圖像。當顯示的圖像首次下載並設置時,它工作正常。但是,如果圖像在設置時在本地可用(已被緩存),則在顯示圖像之前會出現快速白色閃爍。setImageWithUrl顯示緩存圖像時閃爍白色
你知道如何避免這種情況嗎?
重現步驟:
- 集合圖像(圖像將被緩存)
- 關閉應用
- 開始應用
- 集(現在緩存)圖像
代碼設置圖像:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
myCell *cell = (myCell *)[tableView dequeueReusableCellWithIdentifier:@"imageCell"];
[cell.myImageView setImageWithURLRequest:[NSURLRequest requestWithURL:myImageUrl] placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
cell.myImageView.image = image;
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
NSLog(@"Failed");
}];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
謝謝你這麼廣泛和快速的回復@smnh。不幸的是,這並沒有成功。我用你的代碼替換了我的代碼,但閃存仍然存在。不過,你可能已經指出了我正確的方向。 – Leverin
我試着設置一個placeholderimage來查看這個行爲是否會改變。仍然是「閃光」;佔位符圖像在顯示緩存圖像之前顯示0.X秒。我想我可以嘗試添加淡入淡出效果。 – Leverin
是否可以將您的'myImageView.backgroundColor'設置爲白色?或者,也許在圖像未設置時閃爍的myImageView下方有一個白色視圖? – smnh