我需要SDWebImageManager的完成处理函数(设置下载或缓存的图像黑白),所以我使用它而不是sd_setimage。我的问题是,我不知道如何使用SDWebImageManager下载或获取图像的缓存版本。每次tableview单元出队和重新加载时,图像都会重新下载。我尝试设置选项:SDWebImageDownloaderOptions.useNSURLCache,但无济于事。任何建议将不胜感激!这里是我的代码:如何使用SDWebImageManager下载图片只有在尚未缓存的情况下才能下载图片?
SDWebImageManager.shared().imageDownloader?.downloadImage(with:URL(string: imgURL), options: SDWebImageDownloaderOptions.useNSURLCache, progress: nil, completed: { (image, error, cacheType, url) in
if image != nil {
let beginImage = CIImage(image: image!)
let blackNwhiteImg = beginImage?.applyingFilter("CIColorControls", withInputParameters: [kCIInputSaturationKey:0.0])
let newImage = UIImage(ciImage: blackNwhiteImg!)
cell.button.setImage(newImage, for: .normal)
}
})
非常感谢您的回复。这与我发布的代码完全相同。在我看来,你的代码和我的代码都在访问相同的.downloadImage()函数。你能用语法更具体吗?我没有设置选项吗?我尝试使用和不使用选项:SDWebImageDownloaderOptions.useNSURLCache。再次感谢。 –
我的情况的另一个细节是,我注意到在出队tableview单元格中的图像重新加载。但根据我对sdwebimage的理解,出队和重新加载的单元应该无缝地重新加载缓存的图像。 –
每次加载图像时,我都会在完成块中打印cacheType值。每次都是零。这似乎表明没有图像缓存? –