问题描述
我想要达到的目标
我希望 KFImage 始终从内存和磁盘缓存中读取,而不是每次都重新下载图像。用户将获得流畅的体验,而不会在每次视图加载时看到图片下载几秒钟。
出了什么问题
KFImage 视图从 profileImages
变量加载其图像,该变量被初始化为空列表。在调用 getProfileImage()
之前,该列表不会填充 URL,这需要几秒钟。
即使图片URL相同,在视图出现后也会有几秒钟的间隔,因此KFImage不会从其缓存中加载,需要重新下载图片。即使 URL 更改,是否可以使 KFImage 视图始终从缓存加载?或者我的问题还有其他解决方案吗?
import KingfisherSwiftUI
struct ProfileSubview: View {
@State var profileImages: [URL] = []
var body: some View {
ForEach(0..<profileImages.count,id: \.self){index in
KFImage(profileImages[index])
}
}
.onAppear{
getProfileImage()
}
}
func getProfileImage(){
let Metadata = StorageMetadata()
Metadata.contentType = "image/jpeg"
let storage = Storage.storage().reference().child("User_Profile")
storage.downloadURL{url,error in
if let error = error{
print("Error downloading image,\(error)")
}
profileImages.append(url!)
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)