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
.
我需要抓取另一张图片,以防初始图片失败,而我很难弄清楚如何使用 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
.