Изображение не отображается с AsyncImage в Swiftui

У меня есть AsyncImage внутри TabView. Когда я это делаю, изображение никогда не появляется. Я просто вижу индикатор выполнения.

@available(iOS 15.0, *)

struct TEST: View {var body: some View {

          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
    
}

}

3 ответа

попробуйте использовать 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))
        }
    }
    
}

Получил ту же проблему. Мое решение состоит в том, чтобы добавить

      .aspectRatio(CGSize(width: 6, height: 9), contentMode: .fill)
.scaledToFit()

в табвиев.

Я новичок в SwiftUI. я скопировалкод, и он работал хорошо. Но я думаю, что с предварительным просмотром есть какой-то сбой, и я не уверен, что это неизвестная проблема или нет.

С исходным кодом я могу видеть только загрузку, независимо от того, закрываю и снова открываю окно предварительного просмотра. Затем я добавил рамку для просмотра изображения. Я вижу, что изображение загружается правильно, изменив размер кадра на что-то другое, а затем изменив его обратно, например, 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, 
Другие вопросы по тегам