ios - 翠鸟图像采用全宽

标签 ios swift swiftui kingfisher

我正在使用 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/

相关文章:

ios - 相机仅以人像模式快速拍照

iOS 和 Parse 抛出异常 : "unexpectedly found nil"

swift - 在 Swift 4 中解码小写和大写 JSON 键

ios - SwiftUI 列表数据的可识别协议(protocol)扩展

ios - 在 SwiftUI 中按下按钮时如何检测并采取措施

ios - 如何让 SwiftUI 全屏显示?

ios - iTunes 连接 : This action could not be completed. 再试一次。 (-22421)

ios - 从 block 返回导航

ios - 最小按钮间距

ios - 如何覆盖 wkwebview 超链接操作表