swift - 在 UITableView 重新加载时从 SDWebImage 设置图像

标签 swift uitableview sdwebimage reloaddata

我有一个 UITableView 中的单元格列表。图片正在单元格内通过以下方法下载

self.profileImage.sd_setImage(with: URL(string: profileURL), completed: { (image, error, cache, url) in
                            if image != nil {
                                self.profileImage.image = image
                            } else {
                                print("didn't load image")
                            }
                        })

但是,在重新加载和使用 UITableView 时,该索引的先前图像会加载一小会儿,然后显示该索引的更新图像。

现在我的理论是发生了以下情况(如果我错了请纠正我)...

  1. 一旦检索到 URL,就会下载图像。
  2. 该图像使用 SDWebImage 进行缓存。
  3. TableView 重新加载,单元格中的数据发生变化。
  4. SDWebImage 使用该 indexPath 的缓存图像而不是单元格。 (这里有问题)
  5. SDWebImage 再次下载该单元格的 URL 并刷新图像。

如果这是正确的,我需要执行以下操作...

  1. 检索到 URL 后立即下载图像。
  2. 使用 SDWebImage 缓存图像。
  3. TableView 重新加载,单元格中的数据发生变化。
  4. 为该单元格使用缓存的图像。

我是否使用了错误的方法来设置 self.profileImage?

一如既往,我们非常感谢您的帮助。

最佳答案

1. 检索到 URL 后立即下载图像。 2.使用 SDWebImage 缓存图片。

您使用此代码

let url = NSURL(string: "https://test.com/upload/image.jpg")!

self.imageD.sd_setImage(with: url as URL!, placeholderImage: UIImage(named: "default_logo"), options: .transformAnimatedImage, progress: nil, completed: nil)

这个default_logo放在Assets.xcassets

3.TableView 重新加载,单元格中的数据发生变化。

self.tableView.reloadData()

关于swift - 在 UITableView 重新加载时从 SDWebImage 设置图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46088693/

相关文章:

ios - 每次应用程序启动时都会调用 WKWebView 请求 DeviceMotion 和 DeviceOrientation 的权限

ios - 未选中时无法更改按钮颜色

iphone - 使用 NSUserDefaults 根据按下的表格 View 单元格加载数据

swift - 带有选项的自定义 UITableViewCell

ios - "Bottomless"收藏 View (加载更多图片)

ios - Swift 强制我在调用下一个类的对象时使用 self

ios - 从推送序列中删除渐变

ios - 第二次点击后有时会调用 UITableView didSelectRowAtIndexPath

ios - 无法调用来自 SDWebImage 的调用

ios - 在 v5 中将预取图像复制到内存中 (SDWebImageCacheMemoryOnly)