ios - ScrollView 使用 SwiftUI 获取/设置滚动位置
问题描述
我正在尝试以编程方式滚动到 a 中的特定 Y 位置ScrollView
,当单击按钮时,如何设置ScrollView
位置?
ScrollView {
Button(action: {
}) {
Text("Sign In").fontWeight(.heavy)
}
}
我想要这个按钮操作,以访问和更改 ScrollView 位置。
解决方案
SwiftUI 2.0
由于 iOS 14 可以使用ScrollViewReader
(即 ScrollView 容器中的某些特定视图可以分配标识符并通过ScrollViewProxy.scrollTo
该视图),如下例所示
使用 Xcode 12b 测试。
struct DemoScrollToView: View {
var body: some View {
ScrollView {
ScrollViewReader { sp in // << here !!
Button(action: {
withAnimation {
sp.scrollTo(80) // << here !!
}
}) {
Text("Sign In").fontWeight(.heavy)
}
ForEach(0..<100) { i in
Text("Item \(i)").padding().id(i) // << here !!
}
}
}
}
}
推荐阅读
- shell - 转换日期格式的命令行工具
- java - 使用 java8 通过 Hashmap 进行迭代时返回或收集值
- python - 尽管可以使用 .get_data() 检索数据,但 Matplotlib fig 未在图中显示更新的数据
- python - Python - 变量在递归函数中没有明显原因改变其值
- amazon-web-services - SSH 进入 AWS Cloud9 环境
- angular - 实现操纵 Dom 的 3rd 方库的正确方法是什么?
- python - Python 代码不产生任何输出。这里使用生成器正确吗?
- gatsby - gatsby-node.js createPages 没有向 pageContext 中的组件发送数据
- javascript - 如何在 Node Js 环境中反语句
- vue.js - 如果我使用带有电子 js 的 vue 路由器,如何修复空白页?