【发布时间】:2016-05-15 16:09:03
【问题描述】:
我刚开始使用 KingFisher。
当您向下滚动 UITableView 太快时,所有网络/加载请求都会备份,因此当它停止滚动时,它仍在完成之前的请求。
这会导致所有图像都以不同的图片闪烁,直到所有备份请求都完成。
这是我从缓存或网络中检索图像的代码。
if ImageCache.defaultCache.cachedImageExistsforURL(finished_URL!) == true {
print("image is already cached.")
if cell.tag == indexPath.row{
cell.card_imageIV.image = UIImage(imageLiteral: "ic_error")
KingfisherManager.sharedManager.retrieveImageWithURL(finished_URL!, optionsInfo: nil, progressBlock: nil, completionHandler: { (image, error, cacheType, imageURL) -> () in
cell.card_imageIV.image = image
print("Retrieved cached image")
})
}
}else{
cell.card_imageIV.kf_setImageWithURL(finished_URL!, placeholderImage: self.placeholderImage, optionsInfo: nil, completionHandler: { image, error, cacheType, imageURL in
print("\(card_name): Finished")
})
}
我已尝试按照 https://github.com/onevcat/Kingfisher 上的文档取消所有以前的下载任务,但没有帮助。
我尝试了以下代码:
// The image retrieving will stop.
imageView.kf.cancelDownloadTask()
这只会取消当前的单元格,至少从我可以理解。
【问题讨论】:
标签: swift image uitableview scroll cell