1

我想确定我的 (vertical) 内内容的高度ScrollView

ScrollView {  
    //My Content
}

这可能吗?我已经尝试了一些东西,但似乎没有任何效果。

不幸的是,简单地使用GeometryReader是行不通的,因为它返回一个值,10不管里面有什么内容ScrollView

谢谢!

4

2 回答 2

7

这是一种实际获取内容height的方法ScrollView

CZ54 的答案似乎很直观,但它总是返回 10 的高度,这是不正确的!。

我们必须改为读取内容的高度。GeometryReader直接在里面ScrollView不会这样做。一种可能的方法是使用.background/ .overlay

struct ContentView: View {

    var body: some View {
        ScrollView {
            ForEach(0..<1000) { i in
                Text("\(i)")
            }
            .background(
                GeometryReader { proxy in
                    Color.clear.onAppear { print(proxy.size.height) }
                }
            )
        }
    }
}

我们得到一个20500.0正确的输出。

于 2020-10-22T13:38:10.067 回答
0

您可以使用GeometryReader

 ScrollView {
        GeometryReader { geometry in
         //print(geometry.size.height) 
       }
    }
于 2020-05-28T11:31:02.773 回答