天天看点

[快速学会Swift第三方库] Kingfisher篇[快速学会Swift第三方库] Kingfisher篇

kingfisher是一个轻量的下载和缓存网络图片库。下载和缓存是异步进行操作,已经下载好的图片会缓存在内存和本地,极大得提高app的体验。

<a href="#%e5%bf%ab%e9%80%9f%e5%ad%a6%e4%bc%9aswift%e7%ac%ac%e4%b8%89%e6%96%b9%e5%ba%93-kingfisher%e7%af%87">快速学会swift第三方库 kingfisher篇</a>

<a href="#%e7%9b%ae%e5%bd%95">目录</a>

<a href="#%e7%bc%96%e7%a0%81%e4%b9%8b%e5%89%8d">编码之前</a>

<a href="#%e5%af%bc%e5%85%a5-kingfisher">导入 kingfisher</a>

<a href="#%e5%85%b6%e4%bb%96%e6%93%8d%e4%bd%9c">其他操作</a>

<a href="#%e5%9f%ba%e7%a1%80%e6%93%8d%e4%bd%9c">基础操作</a>

<a href="#%e4%bd%bf%e7%94%a8optionsinfo%e5%8f%82%e6%95%b0">使用optionsinfo参数</a>

<a href="#%e5%9b%9e%e8%b0%83%e5%87%bd%e6%95%b0">回调函数</a>

<a href="#%e5%8f%96%e6%b6%88%e4%bb%bb%e5%8a%a1">取消任务</a>

<a href="#%e4%b8%8b%e8%bd%bd%e5%99%a8">下载器</a>

<a href="#%e7%bc%93%e5%ad%98%e7%b3%bb%e7%bb%9f">缓存系统</a>

<a href="#%e9%a2%84%e5%8f%96">预取</a>

<a href="#%e5%8a%a8%e6%80%81%e5%9b%be%e7%89%87">动态图片</a>

<a href="#%e6%b7%b1%e5%85%a5%e5%ad%a6%e4%b9%a0">深入学习</a>

推荐使用cocoapods进行导入,cocoapods是一个负责管理ios项目中第三方开源库的工具,安装cocoapods之后使用命令行就能轻松地对所有第三方开源库进行安装和更新,而不需要每次上github去下载。

装好cocoapods后,修改podfile文件内容为如下:

target后面为工程名,最后一行为工程路径(这里的web是我的工程名)

再执行命令:

另外还需要在target-&gt;工程名-&gt;build settings-&gt;search paths-&gt;user header search paths处添加kingfisher所在的目录:

[快速学会Swift第三方库] Kingfisher篇[快速学会Swift第三方库] Kingfisher篇

最后在你需要用到kingfisher的类中加上:

运行效果如下:

[快速学会Swift第三方库] Kingfisher篇[快速学会Swift第三方库] Kingfisher篇

如果下载的图片不再使用可以停止任务,多用于tableview和collectionview中的cell,当图片还没下载完成时,用户就滑动界面导致cell消失的情况。

也可以利用kf_setimagewithurl函数的返回值(类型为retrieveimagetask)来进行更多的管理操作

自定义下载器参数

自定义缓存参数

将一些图片在显示到屏幕上之前,先预取到缓存。主要用于当你可以预知接下来会用到图片资源时,避免多次请求。

加载动态图片只需要加上一行代码,设置imageview为animatedimageview,不设置也能加载,但是在动态图片较大的时候推荐进行该设置。