我正在使用KingFisher https://github.com/onevcat/Kingfisher
库,以便我可以缓存图像,如果有人熟悉它,我需要一些提示。所以我有以下代码
let myCache = ImageCache(name: recipesClass.objectId!)
let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
let optionInfo: KingfisherOptionsInfo = [
.DownloadPriority(0.5),
.CallbackDispatchQueue(queue),
.Transition(ImageTransition.Fade(1)),
.TargetCache(myCache)
]
if let imageFile = recipesClass[RECIPES_COVER] as? PFFile {
let URL = NSURL(string: imageFile.url!)!
cell.coverImage.kf_setImageWithURL(URL, placeholderImage: nil,
optionsInfo: optionInfo,
progressBlock: { receivedSize, totalSize in
print("\(indexPath.row + 1): \(receivedSize)/\(totalSize)")
},
completionHandler: { image, error, cacheType, imageURL in
print("\(indexPath.row + 1): Finished")
})
} else {
cell.coverImage.image = UIImage(named:"logo")
}
当我第一次进入“视图”时,它通常会以这种良好的外观加载图像。但是我还有一个刷新按钮,它可以查询到Parse,并检查是否有任何新配方,然后从集合视图中重新加载数据,并打印“ Finished”(完成)
这是否意味着它会再次下载图像?还是从缓存加载它们?
我问是因为它以不同的方式将图像附加到单元格中,而不是第一次加载时。
任何的想法?
PS,我要做的是在每个单元格中都希望使用每个配方的对象ID来缓存图像,以便在该单元格加载时使用该唯一对象ID来缓存图像,以便从缓存中加载而不下载它。
试试这个代码:
var imageView:UIImageView!
let mCa = ImageCache(name: "my_cache")
let imagePath = getImagePath("image url")
imageView.kf_setImageWithURL(NSURL(string: imagePath)!,placeholderImage: UIImage(named: "DefaultImageName"),optionsInfo: [.TargetCache(mCa)])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句