我想将imageView.af_setImageWithURL(URL)
与来自AlamofireImage的 AutoPurgingImageCache 一起使用。
如何通知af_setImageWithURL
获取图像,以便将其放入缓存中?因为这是在背景中完成的。
我更喜欢这样的内容:imageView.af_imageFromCache(URL)
如果图像已经存在于缓存中,则会将图像设置为缓存,或以其他方式下载异步,然后设置图像并将其保存在缓存中。
答案 0 :(得分:4)
ImageDownloader
使用的共享UIImageView
已将图片自动放入AutoPurgingImageCache
。每次使用imageView.af_setImageWithURL(URL)
时,它都会尝试将图像从图像缓存中拉出(如果存在)。如果图像尚未在缓存中,它将在ImageDownloader
实例上开始下载。
答案 1 :(得分:0)
SWIFT 4.0
设置' AutoPurgingImageCache'在Appdelegate中,以便我可以在任何类中访问它
var imageCache:AutoPurgingImageCache?
imageCache = AutoPurgingImageCache(
memoryCapacity: 100_000_000,
preferredMemoryUsageAfterPurge: 60_000_000
)
然后在我的服务类中设置图像
class func setImage(url : String,imageview:UIImageView) {
let imageCache = appDelegate.imageCache!
// Fetch
if let cachedAvatar = imageCache.image(withIdentifier: url){
imageview.image = cachedAvatar
}else {
Alamofire.request(url).responseImage { response in
debugPrint(response)
debugPrint(response.result)
if let image = response.result.value {
imageview.image = image
// Add
imageCache.add(image, withIdentifier: url)
}
}
}
}