我正在使用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“。
这是否意味着它会再次下载图像?还是从缓存中加载??
我之所以这样问,是因为它在单元格中以不同的方式附加图像,而不是在第一次加载时。
有什么想法吗?
附注:我想做的是,在每个单元中,我想缓存每个配方的对象ID的图像,所以当单元加载时,它有缓存的图像与这个唯一的对象id,从缓存中加载它,而不是下载它。
发布于 2016-08-04 20:44:26
尝试以下代码:
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)])https://stackoverflow.com/questions/38763587
复制相似问题