Swift 3 如何使用Kingfisher,来这里看

swift中,网络图片库比较常用的是kingfisher和alamofireimage,个人感觉alamofireimage有点大,另外kingfisher是基于SDWebimage的,oc转swift的话语法也比较熟悉,大神onevcat已经为我们做好了缓存处理,非常实用,已经支持了swift3

有两种方法可以安装Kingfisher库

1、用pod

podfile里边键入

platform :ios, "8.0"

use_frameworks!

target 'projectName' do

pod 'Kingfisher', '~> 3.3.4’

end

2. Kingfisher最新的,没有了之前那个直接用url请求的方法,取代的是

setImage(with: Resource?, placeholder: Image?, options: KingfisherOptionsInfo?, progressBlock: DownloadProgressBlock?, completionHandler: CompletionHandler?)

需要注意的是,在这里,Resource只是一个协议,由cacheKey和downloadURL组成的,kingfisher默认是将url作为cacheKey,也可以自己定义一个cacheKey。

来一个例子,来看看Resource这个参数怎么写

let url = URL(string: "http://pic29.nipic.com/20130512/12428836_110546647149_2.jpg")

imgView?.kf.setImage(with: url)

imgView?.kf.setImage(with: url, placeholder: UIImage(named:"placeholderImage"), options: nil, progressBlock: nil, completionHandler: nil)

kingfisher里边,是ImageResource遵循了Resource协议,这里,需要这样初始化,有很多同学想,为何我在Resource后边写init没有提示,原因就在这里,他只是一个协议,不是一个类型。

如果想写出来就可以有提示,可以自己封装一个方法,封装方法就不写了,很简单的只是传入参数做一下处理。(由于时间原因,关于kingfisher的缓存这部分没来得及,以后补上☺☺)

你可能感兴趣的:(Swift 3 如何使用Kingfisher,来这里看)