SDWebImageSwiftUI - 如果第一个图像失败,如何加载后备图像?

SDWebImageSwiftUI - How to load a fallback image if the first one fails?

我需要抓取另一张图片,以防初始图片失败,而我很难弄清楚如何使用 SDWebImageSwiftUI 执行此操作。

关于如何执行此操作的任何线索?

import SDWebImageSwiftUI


struct ContentView: View {
    var body: some View {
             WebImage.init(url: URL(string: "https://via.placeholder.com/300/09f.png/fff"))
.placeholder(Image(uiImage: #imageLiteral(resourceName: "placeholder")))
        }
 }

上面的代码对我有用, 希望它对你有用:)

您可以在 WebImage 上使用 onFailure 属性。像这样的东西可以工作:

import SDWebImageSwiftUI

struct DoubleImageView: View {
    @State var url = URL(string: "https://via.placeholder.com/150x150.jpg")

    var body: some View {
        WebImage(url: url)
            .placeholder(Image(systemName: "person").resizable())
            .onFailure { _ in
                url = URL(string: "https://via.placeholder.com/72x72.jpg")
            }
            .resizable()
            .frame(width: 100, height: 100)
    }
}

只需将初始 url 更改为 "https://via.placeholder.com" ,这将导致加载图像失败,这将反过来更新 url 并导致图像重新加载新 url.