我正在使用Haneke库来下载、加载和缓存图片。这个库很好用,但是在快速滚动时,它会加载错误的图片,或者有时根本不会加载任何图片。
这是因为在后台下载的速度跟不上快速滚动的速度,所以队列中下一个要加载的图片可能会被加载到错误的单元格中。
以下是请求网络图片和缓存图片的代码:
let fetcher_net = NetworkFetcher<UIImage>(URL: finished_URL!)
let fetcher_disk = DiskFetcher<UIImage>(path: check_apost)
cache.fetch(fetcher: fetcher_disk).onSuccess { image in
//cell.card_imageIV.hnk_fetcher.cancelFetch()
//print("Image Cache found")
cell.card_imageIV.image = image
}.onFailure{ image in
//print("Unavailable to find image cache, fetching from network")
cache.fetch(fetcher: fetcher_net).onSuccess { image in
//print("Network image request SUCCESS")
cell.card_imageIV.image = image
}
}
同时,在自定义单元格的Swift文件中,是否有任何方法可以在屏幕上的单元格消失时终止任何请求?
override func prepareForReuse() {
super.prepareForReuse()
// Increment the generation when the cell is recycled
//card_imageIV.hnk_cancelSetImage()
//card_imageIV.image = nil
}
我已经试图想解决这个问题好几周了。如果有更好的库可以用来解决此问题,请告诉我。