首页 文章

使用SDWebImage一次下载两个图像

提问于
浏览
0

我正在研究使用SDWebImage将图像下载到我的应用程序中 . 我想尽快显示图像,所以我的服务器上每个图像都有两个版本;一个低质量和一个高品质 . 目前,我通过使用两个 NSURLRequest 实现此目的,每个版本的图像一个 . 这非常有效,因为应用程序将同时下载两个版本,显示低质量,然后在完成下载后将图像更改为高质量版本 .

我尝试使用以下方法复制此内容:

[imageView setImageWithURL:lowURL];
[imageView setImageWithURL:highURL];

但是当我运行应用程序时,第二个呼叫会取消第一个呼叫 . 任何有关这方面的帮助都会受到极大的关注 .

谢谢

3 回答

  • 2

    如果查看 UIImageView+WebCache.m 文件中的 - (void)setImageWithURL:(NSURL *)url ,您会发现第一行中有 [self cancelCurrentImageLoad]; ,这将取消当前的图像加载操作 . 如果你想同时加载它们,你可以尝试注释掉这一行以测试它是否会按预期工作,如果不能那么你最好尝试其他方法 .

  • 0

    修改框架不是解决问题的好方法,除非没有其他更好的方法 .

    在SDWebImage的 UIImageView+WebCache.h 类别中,有针对这种情况的方法 .

    例如:

    __weak UIImageView *weakImageView = imageView;
    [imageView setImageWithURL:thumbURL placeholderImage:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
        [weakImageView setImageWithURL:bigURL placeholderImage:image];
    }];
    
  • 3

    可能这个问题最好以不同的方式解决,尝试在显示之前预先获取图像

    这是快速执行此操作的代码

    let prefetcher = SDWebImagePrefetcher.shared()
    let urls :[URL] = [URL(string: imageStringUrl)] 
    prefetcher.prefetchURLs(urls)
    

相关问题