【发布时间】:2019-02-11 18:31:41
【问题描述】:
基本信息: 我有一个 tableView 和每个 tableView 单元格包含一个图像和几个标签。 我使用 tableView prefetch data 方法进行 API 调用以在 tableView 滚动时获取数据。
问题: 有时我会看到一个特定的单元格显示其他单元格的图像。 当我滚动速度比正常速度快一点时,就会发生这种情况。 注意:为了克服这个问题,我只需要向上/向下滚动 tableView
尝试过的事情: 我在 prepare for reuse 方法中将 imageView 设置为 nil。
我得出的结论: 通过调试问题,我了解到一旦单元格可见,我会使用 Alamofire Image 发出图像请求,但在收到响应之前我会滚动它。 因此,可能发生的情况是,在收到响应时,它正在为单元格设置图像,但由于我正在重用单元格,所以该单元格不可见。该单元格包含一些其他数据。
如果单元格不可见,请告诉我如何取消请求。 如果我在问题中遗漏了什么,请告诉我。
【问题讨论】:
-
在这种情况下,您可以使用一些框架,例如 . Kingfisher、Haneke 等 bcoz 很快就会缓存图像、内存问题等。这些都由上述 pod 处理。
-
我认为这些是由 AlamofireImage 处理的
-
AlamofireImage 处理获取和缓存,但这些库可以提供的远不止这些。就像在单元格中设置图像异步一样 - 它在这些 pod 中是免费的。随时检查
-
bwt 取消不会解决您的问题,如果您再次想要图像,您最终会再次获取。
标签: ios swift uitableview alamofireimage