iOS开发_ SDWebImage先下载图片保存起来,需要时再调用
1、需求场景
- 客户端需要将一段时间内的开屏广告图都预先下载到本地,确保用户在网络不佳甚至断网的情况下都能看到开屏广告;
- 需要预先拿到UIImage实例对象,动态修改图片的色调,再设置图片。
2、解决办法
-
2.1 使用SDWebImagePrefetcher来下载图片
- 将要下载的图片地址集合传入,SDWebImagePrefetcher就会帮我们将图片逐个下载下来,并且缓存在本地,缓存的方式和我们通常使用的动态加载图片一样以url为key存储。
NSArray *data_array = @[@"https://admin.sdacn.net/uploads/20211214/8ba4bdffb9949d2ffb9e9931e21ae43b.png",
@"https://admin.sdacn.net/uploads/20211214/ca9ef53fca46ea354d7b06b57b5ef96e.png",
@"https://admin.sdacn.net/uploads/20211214/5cd59d2020301bfdc65a6def3b6cedf9.png"];
SDWebImagePrefetcher *fetcher = [SDWebImagePrefetcher sharedImagePrefetcher];
[fetcher prefetchURLs:data_array
progress:^(NSUInteger noOfFinishedUrls,
NSUInteger noOfTotalUrls) {
// 下载进度查看
} completed:^(NSUInteger noOfFinishedUrls,
NSUInteger noOfSkippedUrls) {
// 全部下载完成
}];
-
2.2 获取图片
- 当我们需要使用对应地址的图片时,我们只需要以url为key来获取图片即可
NSString *img_url = @"https://admin.sdacn.net/uploads/20211214/8ba4bdffb9949d2ffb9e9931e21ae43b.png";
NSString *key = [[SDWebImageManager sharedManager] cacheKeyForURL:[NSURL URLWithString:img_url]];
UIImage *image = [[SDImageCache sharedImageCache] imageFromCacheForKey:key];
原文地址:https://www.cnblogs.com/CH520/p/15704199.html