天天看點

[快速學會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,不設定也能加載,但是在動态圖檔較大的時候推薦進行該設定。