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的缓存这部分没来得及,以后补上☺☺)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容