0

许多在线网站演示使用惰性堆栈加载大量视图,例如ForEach(1...100, id: \.self) { value in用于演示用法。但是在具有复杂视图的生产应用程序中,我真的找不到任何资源来了解在何处以及如何准确地使用 Lazy Stacks。例如,我有一个MasterView包含许多复杂视图的子视图(每个视图包含多个绘制成本高的图表)。我应该像下面那样在顶层使用惰性堆栈,还是子视图(ComplexViews)也应该在它们中使用惰性堆栈?或者子视图应该使用 LazyStacks 并MasterView使用常规的 VStack?从性能(滚动的角度)来看,什么是最优化的。

struct MasterView: View {
   
    var body: some View {
        NavigationView {
            ScrollView {
                LazyVStack {
                    ComplexView()
                    ComplexView()
                    ComplexView()
                    ComplexView()
                    ComplexView()
                    ComplexView() 
                }
            }
        }
    }
}

struct ComplexView: View {
    var body: some View {
       VStack { //LazyVStack?? 
            HStack { //LazyHStack?? 
              SwiftUIChart
              Text("Chart Data")
            }
             HStack {
              SwiftUIChart
              Text("Chart Data")
            }
             HStack {
              SwiftUIChart
              Text("Chart Data")
            }
            
       }
    }
}
4

0 回答 0