SdWebImage下载缩略图然后下载高分辨率

时间:2012-11-16 19:29:14

标签: objective-c sdwebimage

我想设置缩略图图像网址和高分辨率图像网址,以便下载第一个缩略图图像,然后下载高分辨率图像

3 个答案:

答案 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 ...}];