SwiftUi горизонтальный Scrollview с данными из Api - PullRequest
0 голосов
/ 12 апреля 2020

Мне нужно сделать горизонтальный Scrollview с данными, загруженными из API. У меня есть такой вид:

 ScrollView(.horizontal,showsIndicators:false) {

      HStack(spacing: 20) {
        ForEach(self.images, id: \.self) { item in

                URLImage(URL(string:item)!)
                               { proxy in
                                   proxy.image
                                       .resizable()
                               }.frame(width: UIScreen.main.bounds.width - 120, height: 200).aspectRatio(contentMode: .fit)
                               .cornerRadius(15)
                               .opacity(0.7)


    }

    }.onAppear(perform: loadData)

}.padding(.all,20)

Когда я удаляю scrollview, данные загружаются отлично. Любое предложение для этого? Спасибо

1 Ответ

0 голосов
/ 13 апреля 2020

попробуйте это:

это быстрый и грязный пример ...;)

var imageLoader = ImageLoader()

class ImageLoader {

    var images : [Image] = []

    init() {
        loadData()
    }

    func loadData() {

        for _ in 0..<10 {
            images.append( Image(systemName: "circle.fill"))
        }
    }
}

struct ContentView: View {

       var body: some View {

        ScrollView(.horizontal,showsIndicators:false) {

        HStack(spacing: 20) {

                ForEach(0..<imageLoader.images.count, id: \.self) { item in

                    imageLoader.images[item]
                        .resizable()
                        .frame(width: UIScreen.main.bounds.width - 120, height: 200).aspectRatio(contentMode: .fit)
                        .cornerRadius(15)
                        .opacity(0.7)
                }
            }.background(Color.yellow)
        }.background(Color.orange)
    }
}
...