ios - SwiftUI - 如何获取 ScrollView 内容的大小(高度)
问题描述
我想确定我的 (vertical) 内内容的高度ScrollView
。
ScrollView {
//My Content
}
这可能吗?我已经尝试了一些东西,但似乎没有任何效果。
不幸的是,简单地使用GeometryReader
是行不通的,因为它返回一个值,10
不管里面有什么内容ScrollView
谢谢!
解决方案
这是一种实际获取内容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
正确的输出。
推荐阅读
- spring - Spring Boot中是否允许多个嵌入式容器
- javascript - 在 React.js 中调用 API 数据并将其传递给其他组件
- java - 有什么方法可以在 ACTION_OPEN_DOCUMENT_TREE 上添加自定义额外信息
- python - 用熊猫替换数据框中列的所有值
- javascript - React - 当我的 React 钩子更新时,我的用户界面无法正确重新渲染
- python - 熊猫只需要一年的完整日期
- redux - push 不是 redux 中的功能
- c# - 示例场景一直说未加载,我点击播放按钮,播放场景被统一冻结
- c++ - C ++朋友类循环包括
- javascript - 在javascript中将按位运算结果与0进行比较