我正在使用 Kingfisher 库的 KFImage
从 URL 加载图像。
某些 URL 可能无效。因此 Kingfisher 将无法从此 url 加载图像。在这种情况下,我想折叠 KFImage
。
HStack(alignment: .top) {
KFImage(someUrl)
Text("some Text")
}
在这种情况下,KFImage 占据了它能占据的所有位置。我通过 KFImage 的 onSuccess Listener 找到了解决方案。
KFImage(url)
.onSuccess { _ in
self.canLoadImage = true
}
.forceRefresh()
.resizable()
.aspectRatio(contentMode: .fill)
.cornerRadius(20)
.clipped()
.frame(width: canLoadImage ? 150 : 0)
}
在这种情况下,图像会在失败时折叠,但在成功时具有宽度。但这个解决方案似乎太复杂,不可能是最佳解决方案。由于我是一名新的 iOS 开发人员,因此我对更好解决方案的想法非常有限。
最佳答案
您可以使用 if 语句从 View
中完全删除图像:
if canLoadImage {
KFImage(url)
.onSuccess { _ in
self.canLoadImage = true
}
.forceRefresh()
.resizable()
.aspectRatio(contentMode: .fill)
.cornerRadius(20)
.clipped()
.frame(width: 150)
}
关于ios - 翠鸟图像采用全宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73444501/