我想设置缩略图图像网址和高分辨率图像网址,以便下载第一个缩略图图像,然后下载高分辨率图像
答案 0 :(得分:6)
实际上,您无需创建任何隐藏的UIImageView
即可。
您必须做的是将第一个网址(包含较小的图片)设置为直接下载到UIImageView
,然后使用SDWebImageManager
在后台下载较大的版本。完成下载后,只需在图像视图中设置下载的图像。
以下是你如何做到这一点:
// First let the smaller image download naturally
[self.imageView setImageWithURL:self.imageURL];
// Slowly download the larger version of the image
SDWebImageManager *manager = [SDWebImageManager sharedManager];
[manager downloadWithURL:self.currentPhoto.largeImageURL options:SDWebImageLowPriority progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {
if (image) {
[self.imageView setImage:image];
}
}];
注意我是如何使用SDWebImageLowPriority
选项的。这样,图像(应该自然大于第一个)将以低优先级下载,不应取消第一次下载。
答案 1 :(得分:3)
现在已经很晚了,但我用以下代码解决了我的问题
UIImageView * hiddenImageView = [[UIImageView alloc] init];
[hiddenImageView sd_setImageWithURL:thumbUrl completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
if (image) {
mImageView.image = image;
}
if (originalUrl != nil) {
[mImageView sd_setImageWithURL:originalUrl placeholderImage:image completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL){
if (image) {
mImageView.image = image; // optional
}
}];
}
}];
答案 2 :(得分:1)
在视图的某处下载到隐藏的UIImageView,然后在完成加载后在两者之间切换,通过:
[cell.imageView setImageWithURL:[NSURL
URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {... completion code here ...}];