【问题标题】:ScrollView get/set scroll position with SwiftUIScrollView 使用 SwiftUI 获取/设置滚动位置
【发布时间】:2019-10-20 17:53:36
【问题描述】:

我正在尝试以编程方式滚动到 ScrollView 中的特定 Y 位置,当单击按钮时,如何设置 ScrollView 位置?

ScrollView {
 Button(action: {

 }) {
    Text("Sign In").fontWeight(.heavy)        
 }
}

我想要这个按钮操作,以访问和更改 ScrollView 的位置。

【问题讨论】:

标签: ios swift xcode swiftui


【解决方案1】:

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 !!
                }
            }
        }
    }
}

【讨论】:

  • 如何读取位置?而且如果我有一个很长的文本视图,这也行不通。
猜你喜欢
  • 2021-04-08
  • 2021-08-01
  • 2020-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多