1. 在需要的地方导入头文件 #import "UIImageView+WebCache.h"

webCache:网络缓存,几乎目前所有的浏览器都有一个内置的缓存,它们通常利用客户端本地的内存和硬盘来完成缓存工作,

同时允许用户对缓存的内容大小作控制。

这个方法默认已经开启了综合缓存:即自动立即把下载的图片既写入进内存缓存中,同时又写入进硬盘缓存中

该方法的第一个参数(NSURL *)url:我们所要求下载的那张图片的URL

该方法的第二个参数(UIImage *)placeholder:占位图片

在根据第一个参数URL从服务器下载这张图片的过程中,UIImageView控件会先显示该占位图片

在成功下载这张图片完毕后,UIImageView控件就会显示已下载的这张图片

options:缓存策略(缓存观点)

SDWebImageRetryFailed:下载图片失败时,自动再次重新下载该图片

SDWebImageLowPriority:用户在与UI界面交互时,暂停下载图片

SDWebImageRefreshCached:同时刷新内存缓存和硬盘缓存

SDWebImageCacheMemoryOnly:只进行内存缓存,禁止进行硬盘缓存

SDWebImageProgressiveDownload:渐进式下载该图片,所以会渐进式地显示正下载图片

开发中,通常使用SDWebImageRetryFailed和SDWebImageLowPriority

这个方法会先去内存缓存中查找这张图片,若找到了,就加载它;

若找不到,再去硬盘缓存中查找该图片,若找到了,就加载它,然后会立即把这张图片立即写入内存缓存中。

此时,如果空闲内存过小,会先自动清空内存缓存,下一次再加载这张图片时,就直接去内存缓存中加载这张图片了

若在硬盘缓存中也没有找到,说明系统的所有缓存都没有存储这张图片

这时,就使用指定的URL来下载这张图片,所以,这才正式开始下载这张图片。

成功下载这张图片后,UIImageView会自动显示这张图片,并且系统默认会自动立即把图片同时写入到内存缓存和硬盘缓存中。

SDWebImage的使用说明的更多相关文章

  1. iOS SDwebImage 使用说明

    SDWebImage托管在github上.https://github.com/rs/SDWebImage 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下 ...

  2. 网络图片下载缓存库SDWebImage的使用

    SDWebImage导入问题 最新的SDWebImage由于是基于ARC模式写的,如果创建的是非ARC醒目的童鞋们注意,导入文件夹之后,先添加ImageIO.framework,mapKit.fram ...

  3. 开源框架:SDWebImage

    http://blog.csdn.net/uxyheaven/article/details/7909373 SDWebImage是我搞iOS以来少数佩服的框架,膜拜一下作者.真的写的非常棒! 这套开 ...

  4. SDWebImage源码解读之SDWebImageDownloaderOperation

    第七篇 前言 本篇文章主要讲解下载操作的相关知识,SDWebImageDownloaderOperation的主要任务是把一张图片从服务器下载到内存中.下载数据并不难,如何对下载这一系列的任务进行设计 ...

  5. SDWebImage源码解读 之 NSData+ImageContentType

    第一篇 前言 从今天开始,我将开启一段源码解读的旅途了.在这里先暂时不透露具体解读的源码到底是哪些?因为也可能随着解读的进行会更改计划.但能够肯定的是,这一系列之中肯定会有Swift版本的代码. 说说 ...

  6. SDWebImage源码解读 之 UIImage+GIF

    第二篇 前言 本篇是和GIF相关的一个UIImage的分类.主要提供了三个方法: + (UIImage *)sd_animatedGIFNamed:(NSString *)name ----- 根据名 ...

  7. SDWebImage源码解读 之 SDWebImageCompat

    第三篇 前言 本篇主要解读SDWebImage的配置文件.正如compat的定义,该配置文件主要是兼容Apple的其他设备.也许我们真实的开发平台只有一个,但考虑各个平台的兼容性,对于框架有着很重要的 ...

  8. SDWebImage源码解读_之SDWebImageDecoder

    第四篇 前言 首先,我们要弄明白一个问题? 为什么要对UIImage进行解码呢?难道不能直接使用吗? 其实不解码也是可以使用的,假如说我们通过imageNamed:来加载image,系统默认会在主线程 ...

  9. SDWebImage源码解读之SDWebImageCache(上)

    第五篇 前言 本篇主要讲解图片缓存类的知识,虽然只涉及了图片方面的缓存的设计,但思想同样适用于别的方面的设计.在架构上来说,缓存算是存储设计的一部分.我们把各种不同的存储内容按照功能进行切割后,图片缓 ...

随机推荐

  1. eclipse格式化

    一.eclipse格式化的必要性 1.便于阅读 2.便于协作 二.eclipse格式化快捷键 ctrl shift + F

  2. 单词 (Play on Words UVA - 10129 )

    题目描述: 原题:https://vjudge.net/problem/UVA-10129 题目思路: 1.明显是判断欧拉路径 2.欧拉路径的两个条件 a.图连通 b.至多为两个奇点,且一个为起点一个 ...

  3. ionic ios样式偏移解决方案。

    在css属性内增加: .item-ios [item-end] { //解决ios系统上尾部图标出现重影而增加的格式. margin: 0px -15.3px 0px 0px; margin-bott ...

  4. isX字符串方法

    islower():返回True,如果字符串至少有一个字母,并且所有字母都是小写: 例如:>>> spam='Hello world' >>> spam.islow ...

  5. vue移动音乐app开发学习(一):环境搭建

    本系列文章是为了记录学习中的知识点,便于后期自己观看.如果有需要的同学请登录慕课网,找到Vue 2.0 高级实战-开发移动端音乐WebApp进行观看,传送门. 一:使用vue-cli脚手架搭建: 1: ...

  6. addeventlistener和attachevent

    区别: 1.ie8及以下版本前者无效,只能使用后者: 2,关于第三个参数,如果是true则捕获状态触发,为false;则为冒泡状态触发 何为冒泡,何为捕获? 这就好比捕鱼,冒泡吗,鱼向上吐泡泡,所以当 ...

  7. File Searching

    Description Have you ever used file searching tools provided by an operating system? For example, in ...

  8. “Hello world!”团队第三周贡献分规则

    一.贡献规则制定: (1)基础分:9 , 9 , 8 , 7 , 7 , 7 , 6(按在本次编程中承担模块的重要度制定,某一模块重要度的认定通过组内开会讨论决定) (2)会议分:每人没出勤一次会议记 ...

  9. 2017-2018-2 20172314 『Java程序设计』课程 结对编程练习_四则运算

    相关过程截图 截图为我负责的部分关于计算的测试 关键代码解释 根据代码中的部分解释,这部分代码实现了结果的整数和分数的输出,如果算出的结果为一个真分数,就输出真分数的形式,如果结果为整数,就输出整数形 ...

  10. 软件工程课堂作业(十一)——NABC分析

    一.团队开发项目:基于Android的重力感应的解锁APP 二.项目特点:区别于一般解锁软件用开机按钮开锁解锁,我们的重力解锁软件根据动作实现解锁,减少了开机按钮的使用频率,提高寿命. 三.NABC分 ...