kingfisher是基于SDWebimage的,oc转swift的话语法也比较熟悉,大神onevcat已经为我们做好了缓存处理,非常实用,已经支持了swift3,而且我们可以根据SDWebimage的功能去推断Kingfisher的功能
- kingfisher 的基本使用
- kingfisher 的缓存处理
第一:kingfisher的基本使用
cell.leftImg.kf.setImage(with: <#T##Resource?#>)
需要注意的是,在这里,Resource只是一个协议,由cacheKey和downloadURL组成的,kingfisher默认是将url作为cacheKey,也可以自己定义一个cacheKey。例如:
cell.leftImg.kf.setImage(with: URL.init(string: "图片地址"))
或者使用较复杂的
cell.leftImg.kf.setImage(with: <#T##Resource?#>, placeholder: <#T##Image?#>, options: <#T##KingfisherOptionsInfo?#>, progressBlock: <#T##DownloadProgressBlock?##DownloadProgressBlock?##(Int64, Int64) -> ()#>,
completionHandler: <#T##CompletionHandler?##CompletionHandler?##(Image?, NSError?, CacheType, URL?) -> ()#>)
第二:kingfisher的缓存处理
在kingfisher中,计算缓存的大小,代码如下
KingfisherManager.shared.cache.calculateDiskCacheSize { (size) in
print("当前的缓存的大小,这地方获取的是b,记得转化为M======\(size)")
}
在kingfisher中,清理缓存非常简单,代码如下
let cache = KingfisherManager.shared.cache
cache.clearDiskCache()//清除硬盘缓存
cache.clearMemoryCache()//清理网络缓存
cache.cleanExpiredDiskCache()//清理过期的,或者超过硬盘限制大小的
网友评论