我的接口返回两种类型的照片:小照片和大照片
我使用翠鸟来加载照片,我总是先加载小照片。当我加载大照片时,我想要实现这一点
if hasCacheSmallPhoto {
imageView.kf.setImage(with: bigImageUrl, placeholder: cacheImage)
} else {
imageView.kf.setImage(with: bigImageUrl, placeholder: defaultPlaceHolderImage)
}我如何正确地使用翠鸟来实现这一点?
发布于 2019-01-09 21:36:15
您需要先检查一下kingFisher缓存是否缓存了小图片。
if ImageCache.default.isCached(forKey:smallImageUrl) {
ImageCache.default.retrieveImage(forKey: smallImageUrl) { result in
switch result {
case .success(let value):
imageView.kf.setImage(with: bigImageUrl, placeholder: value.image)
case .failure(let error):
print(error)
}
}
}
else {
imageView.image = defaultPlaceHolderImage
imageView.kf.setImage(with: smallImageUrl) { result in
// `result` is either a `.success(RetrieveImageResult)` or a `.failure(KingfisherError)`
switch result {
case .success(let value):
// The image was set to image view:
imageView.kf.setImage(with: bigImageUrl, placeholder: value.image)
// The source object which contains information like `url`.
print(value.source)
case .failure(let error):
print(error) // The error happens
}
}
}https://stackoverflow.com/questions/54101473
复制相似问题