利用SDWebImage下载图片

作者: Leafly | 来源:发表于2017-07-05 15:03 被阅读278次

利用SDWebImage下载图片的原因

近期项目中有一个关于开屏广告加的需求变更。需要客户端将一段时间内的开屏广告图都预先下载到本地,确保用户在网络不佳甚至断网的情况下都能看到我们的开屏广告。一般情况下我们都是通过SDWebImage来动态的加载网络图片,能不能通过SDWebImage来帮我们预先下载好图片呢?下面就来分享一下我是怎么通过SDWebImage预加载图片的 :)

封装好的下载类

为了能方便的实现图片的下载,使用,移除等功能的调用,我封装了一个类ZYImageDownloader,并且已经在github上开源,有兴趣的伙伴可以直接前往下载

原理分析

其实SDWebImage内部已经帮我们实现了图片下载的类,SDWebImageDownloader一个专门用来下载图片的类,SDWebImagePrefetcher一个专门用来批量下载图片的类

这里我们主要就是使用了SDWebImagePrefetcher来下载图片,我们只需要将要下载的图片地址传入,SDWebImagePrefetcher就会帮我们将图片逐个下载下来,并且缓存在本地,缓存的方式和我们通常使用的动态加载图片一样以url为key存储

[[SDWebImagePrefetcher sharedImagePrefetcher] prefetchURLs:prefetchURLs progress:^(NSUInteger noOfFinishedUrls, NSUInteger noOfTotalUrls) {
        
} completed:^(NSUInteger noOfFinishedUrls, NSUInteger noOfSkippedUrls) {
        
}];

当我们需要使用对应地址的图片时,我们只需要以url为key来获取图片即可

NSString *key = [[SDWebImageManager sharedManager] cacheKeyForURL:[NSURL URLWithString:imageURL]];
    UIImage *image = [[SDImageCache sharedImageCache] imageFromCacheForKey:key];
    return image;

相关文章

  • 利用SDWebImage下载图片

    利用SDWebImage下载图片的原因 近期项目中有一个关于开屏广告加的需求变更。需要客户端将一段时间内的开屏广告...

  • iOS部分面试题总结

    1.SDWebImage具体如何实现 利用NSOperationQueue和NSOperation下载图片,还使用...

  • 【转】利用SDWebImage下载图片

    利用SDWebImage下载图片的原因 近期项目中有一个关于开屏广告加的需求变更。需要客户端将一段时间内的开屏广告...

  • SDWebImage

    SDWebImage主要结构 主要类SDWebImage主要结构 下载图片的流程下载图片流程 1. 基本使用 下载...

  • SDWebImage源码详解 - 异步下载器SDWebImage

    SDWebImage源码详解 - 异步下载器SDWebImageDownloader SDWebImage的图片下...

  • SDWebImage源码解析

    概述 SDWebImage是一个强大的图片下载框架,利用异步加载和内存+磁盘两级缓存处理,高效优雅的解决了图片下载...

  • 多线程03

    SDWebImage框架详解 下载图片并显示: 下载图片/显示图片/内存缓存/磁盘缓存 下载图片\内存缓存\磁盘缓...

  • 6.常用第三方库使用

    1.SDWebImage 1.文顶顶大牛SDWebImage讲解 2.SDWebImage的网络图片利用资...

  • SDWebImage 下载图片

    //下载图片获取下载进度 //头文件导入 [self.myimage sd_setImageWithURL:[NS...

  • iOS利用SDWebImage图片下载缓存

    SDWebImage在github上的下载地址https://github.com/rs/SDWebImage S...

网友评论

    本文标题:利用SDWebImage下载图片

    本文链接:https://www.haomeiwen.com/subject/vidqhxtx.html