SwiftUI-如何获取ScrollView内容的大小(高度)

时间:2020-05-28 10:46:35

标签: ios swift swiftui

我想确定(垂直)ScrollView中内容的高度。

ScrollView {  
    //My Content
}

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

不幸的是,仅使用GeometryReader是行不通的,因为无论10内包含什么内容,它都会返回ScrollView的值。

谢谢!

2 个答案:

答案 0 :(得分:1)

这是一种实际获取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输出。

答案 1 :(得分:0)

您可以使用GeometryReader

 ScrollView {
        GeometryReader { geometry in
         //print(geometry.size.height) 
       }
    }