SwiftUI ScrollView 内容高度

SwiftUI ScrollView content height

我在尝试确定 ScrollView 内视图的高度时遇到问题

struct ContentView: View {    
    var body: some View {
        ScrollView{
             GeometryReader { geometry in
                   VStack{
                        ForEach(0..<90) { index in
                             Text("test \(geometry.size.height)")
                        }
                   }
             }
        }
    }
}

geometry.size.height 总是 10.000。

我该如何纠正这个意外的结果?

非常感谢!

我不确定你打算用这个做什么。

GeometryReader 读取提供给视图的大小,而不是视图的大小。您可以通过将 GeometryReader 放在 VStack.overlay 中来了解视图有多大,因为在创建叠加层时,VStack 的大小将已经建立并且该尺寸将提供给覆盖。

struct ContentView: View {
    var body: some View {
        ScrollView{
           VStack{
                ForEach(0..<90) { index in
                     Text("test 000000000000")
                         .opacity(0)
                }
           }
           .overlay(
                GeometryReader { geometry in
                    VStack {
                        ForEach(0..<90) { index in
                            Text("test \(geometry.size.height)")
                        }
                    }
                }
           )
        }
    }
}