Mat*_*ite 3 scroll image cells uitableview swift
我刚刚开始使用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")
})
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用https://github.com/onevcat/Kingfisher上的以下文档来取消以前的所有下载任务,但使用了却没有帮助。
我尝试以下代码:
// The image retrieving will stop.
imageView.kf_cancelDownloadTask()
Run Code Online (Sandbox Code Playgroud)
这只会取消当前的单元格,至少在我看来。
我的项目有绝对相同的问题。我正在寻找一种实现与您想要的相同的方法:如果我快速滚动,–我想取消以前的下载。这是我使用KingFisher库(Swift 3)的方法:
func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath) {
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentify)
cell?.imageView?.kf.cancelDownloadTask()
}
Run Code Online (Sandbox Code Playgroud)
此方法必须在表视图委托中声明。它将取消已经滚动的单元格的下载任务任务。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
2837 次 |
| 最近记录: |