我在TabView中有AsyncImage。当我这样做时,图像永远不会出现。我只看到进度条。
@可用(iOS 15.0,*(
结构TEST:视图{var body:some视图{
VStack {
TabView {
AsyncImage(url: URL(string: "https://blckbirds.com/wp-content/uploads/2021/10/pexels-kammeran-gonzalezkeola-6128227-2.jpg"), scale: 2) { image in
image
.resizable()
.aspectRatio(contentMode: .fill)
} placeholder: {
ProgressView()
.progressViewStyle(.circular)
}
}.tabViewStyle(PageTabViewStyle(indexDisplayMode: .automatic))
}//V
}
}
尝试使用ZStack
来包装AsyncImage
,就像这样,对我有效:
struct TEST: View {
var body: some View {
VStack {
TabView {
ZStack { // <--- here
AsyncImage(url: URL(string: "https://blckbirds.com/wp-content/uploads/2021/10/pexels-kammeran-gonzalezkeola-6128227-2.jpg"), scale: 2) { image in
image
.resizable()
.aspectRatio(contentMode: .fill)
} placeholder: { ProgressView().progressViewStyle(.circular) }
}
}.tabViewStyle(PageTabViewStyle(indexDisplayMode: .automatic))
}
}
}
我是SwiftUI的新手。我复制了@workingdog support
的代码,它运行得很好。但我认为预览有一些小故障,我不确定这是否是一个未知的问题。
使用原始代码,我只能看到加载视图,无论我关闭还是重新打开预览窗口。然后我为图像视图添加了一个框架。我可以通过将帧大小更改为其他大小,然后将其改回,例如300->350->300.
struct ExampleImgItem: View {
var body: some View {
`workingdog support`'s code
}
struct ExampleImgItem_Previews: PreviewProvider {
static var previews: some View {
ExampleImgItem()
.frame(width: 300, height: 300, alignment: .leading)
}
}
P.S. I am using Xcode 13.3.1,
遇到了同样的问题。我的解决方案是添加
.aspectRatio(CGSize(width: 6, height: 9), contentMode: .fill)
.scaledToFit()
到TabView。