我正在使用Kingfisher下载和缓存我的图像。我正在使用CustomImageView下面的自定义类来扩展ImageView。我还使用我的自定义UITableViewCell在CustomCell类文件中的didSet属性内调用loadImage方法。
下面的方法loadImage是发生所有魔术的地方。
class CustomImageView : UIImageView {
var lastUrlLoaded: String?
func loadImage(url:String) {
lastUrlLoaded = url
ImageCache.default.retrieveImage(forKey: url, options: nil) { (image, cacheType) in
if let image = image {
self.image = image
return
}
else {
guard let url = URL(string: url) else { return }
self.kf.setImage(with: url, placeholder: nil, options: nil, progressBlock: nil) {
(image, error, cacheTye, _) in
if let err = error {
self.kf.indicatorType = .none
DispatchQueue.main.async {
self.image = #imageLiteral(resourceName: …Run Code Online (Sandbox Code Playgroud)