zoukankan      html  css  js  c++  java
  • 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];
      
  • 相关阅读:
    bfs,队列
    Wannafly挑战赛22 A计数器(裴蜀定理 gcd)
    素数筛模板
    HDU
    HDU
    控制精度-----直接截取,不需四舍五入
    jstl下载与配置
    B. Treasure Hunt
    动态数组vector
    Manacher算法
  • 原文地址:https://www.cnblogs.com/CH520/p/15704199.html
Copyright © 2011-2022 走看看