【发布时间】:2013-10-13 13:08:05
【问题描述】:
这是我显示来自服务器的图像的代码。加载图像后,当您向下滚动然后返回时,图像会消失,并且在再次加载之前还有另一个延迟。
dispatch_async(kBgQueue, ^{
NSString *profileImageStr = [[displayItems objectAtIndex:indexPath.row] objectForKey:@"image_url"];
NSURL* profileImgURL = [NSURL URLWithString:profileImageStr];
NSData *profileImgData = [NSData dataWithContentsOfURL:profileImgURL];
NSString *postPhotoStr = [[displayItems objectAtIndex:indexPath.row] objectForKey:@"image_url"];
NSURL *postImgURL = [NSURL URLWithString:postPhotoStr];
NSData *postImageData = [NSData dataWithContentsOfURL:postImgURL];
dispatch_async(dispatch_get_main_queue(), ^{
if (postImageData && profileImgData != nil) {
cell.thumbnailImg.image = [UIImage imageWithData:profileImgData];
cell.bgImgView.image = [UIImage imageWithData:postImageData];
}else
{
cell.thumbnailImg.image = [UIImage imageNamed:@"noimage.jpg"];
cell.bgImgView.image = [UIImage imageNamed:@"noimage.jpg"];
}
});
}
);
return cell;
【问题讨论】:
-
大写的句子很难读
-
您需要将图像存储在本地路径中,同时下载完成。每次下载图像时都在这里。所以它会消失。
-
请问我该怎么做?
-
@user2838188 请阅读本文以了解如何存储文件:stackoverflow.com/questions/5323427/…。您必须在下载文件后保存文件并检查某些图像是否缓存在设备中。如果是,则从设备加载,如果不是 - 从互联网加载。
标签: ios objective-c