4

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

4

3 回答 3

7

实际上,你不需要创建任何隐藏的东西UIImageView来做这个把戏。

您要做的就是设置第一个URL(带有较小的图像)直接下载到您的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选项的。这样,图片(自然应该比第一个大)将以低优先级下载,不应该取消第一次下载。

于 2013-06-17T17:19:31.413 回答
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
            }

        }];

    }
}];
于 2015-10-23T08:54:48.877 回答
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 ...}];
于 2013-02-06T22:55:39.280 回答