【发布时间】:2020-05-16 22:59:22
【问题描述】:
当我快速滚动 UITableView 时,imageView 会显示来自 API 的错误图像。 (即英国脱欧文章中显示的三星图片等)。
这是一个允许我下载图片的扩展程序(也许我可以在这里更改一些内容):
extension UIImageView {
func donwloadImage(from url: String) {
let urlRequest = URLRequest(url: URL(string: url)!)
let task = URLSession.shared.dataTask(with: urlRequest) { (data,response,error) in
if error != nil {
print(error)
return
}
DispatchQueue.main.async {
self.image = UIImage(data: data!)
}
}
task.resume()
}
}
【问题讨论】:
-
你为什么不为此使用 3rd 方库?如果你愿意,我可以给你几个库的链接。
-
是的,也许我可以试一试,谢谢!
-
应该没有必要为这样的事情使用第三方依赖项——你只是无缘无故地使你的代码库复杂化。如果没有看到 tableView 代码,我们无法确定,但这几乎可以肯定是由于图像下载是异步的并且速度不够快,无法快速滚动,因此它显示了上次使用单元格时的图像。考虑清除之前的图像或在
cellForRowAt或预缓存图像中设置默认值。
标签: ios swift uitableview caching image-caching