SwiftUI - 如何获取 ScrollView 内容的大小(高度)
Posted
技术标签:
【中文标题】SwiftUI - 如何获取 ScrollView 内容的大小(高度)【英文标题】:SwiftUI - How to get size (height) of ScrollView content 【发布时间】:2020-05-28 10:46:35 【问题描述】:我想确定我的(垂直)ScrollView
中内容的高度。
ScrollView
//My Content
这可能吗?我尝试了一些方法,但似乎没有任何效果。
不幸的是,仅使用GeometryReader
不起作用,因为无论ScrollView
中的内容是什么,它都会返回10
的值
谢谢!
【问题讨论】:
可以考虑this my solution for List。它也可以适应动态ScrollView
。
【参考方案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
的输出,这是正确的。
【讨论】:
【参考方案2】:您可以使用GeometryReader:
ScrollView
GeometryReader geometry in
//print(geometry.size.height)
【讨论】:
谢谢,这个我已经试过了,它总是打印 10.0。这似乎不起作用。以上是关于SwiftUI - 如何获取 ScrollView 内容的大小(高度)的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI - 如何在运行时更改内部内容后获取 ScrollView 内容高度
获取 SwiftUI 中 ScrollView 的当前位置?