【问题标题】:SwiftUI - How to get size (height) of ScrollView contentSwiftUI - 如何获取 ScrollView 内容的大小(高度)
【发布时间】:2020-05-28 10:46:35
【问题描述】:

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

ScrollView {  
    //My Content
}

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

不幸的是,仅使用GeometryReader 不起作用,因为无论ScrollView 中的内容是什么,它都会返回10 的值

谢谢!

【问题讨论】:

标签: ios swift swiftui


【解决方案1】:

这是一种实际获取heightScrollView 内容的方法。

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 的输出,这是正确的。

【讨论】:

    【解决方案2】:

    您可以使用GeometryReader

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

    【讨论】:

    • 谢谢,这个我已经试过了,它总是打印 10.0。这似乎不起作用。
    猜你喜欢
    • 2021-10-31
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    相关资源
    最近更新 更多