首页 > 解决方案 > List 渲染时加载屏幕 - SwiftUI

问题描述

我正在从 API 获取一些视频,并制作了一个动画加载屏幕,在获取数据时显示。收到数据后,我想在列表中显示视频。“渲染”列表中的视频需要相当长的时间,并且在获取数据后加载屏幕停止。

有没有办法在 Swift 在后台“制作”列表页时显示加载屏幕?

这是我的代码:

import SwiftUI

struct ListExample: View {
    @State var loaded: Bool = false
    @State var serverData2 = ServerMessage(SavedClips: [], SentryClips: [])
    @State var SavedClips2: Array<String> = []
    
    var body: some View {
        
        NavigationView {
            if loaded {
                    List(self.SavedClips2, id: \.self) { string in
                        NavigationLink(destination: DetailedVideo(url: string)) {
                            VideShow(url: string, thumbnail: string)
                        }
                    }
                
                                }
            else {
                LoadingPage()
            }
        }.onAppear() {
            self.manager.postAuth(car_name: self.name) { (posts) in
                self.serverData2 = posts
                self.loaded = true
            }
        }
    }
}

struct TestFile_Previews: PreviewProvider {
    static var previews: some View {
        TestFile()
    }
}

标签: iosswiftswiftuiapple-developer

解决方案


推荐阅读