【问题标题】:Programmatically Scroll SwiftUI ScrollView on iOS 13在 iOS 13 上以编程方式滚动 SwiftUI ScrollView
【发布时间】:2021-03-24 20:27:02
【问题描述】:

据我了解,对于 iOS 14,您可以使用 ScrollViewReader 随着滚动视图中的内容发生变化而自动向上或向下滚动视图。

我处于必须支持 iOS 13 的情况。有没有办法,甚至是一种 hacky 方式,以编程方式在 iOS 13 中滚动滚动视图?

【问题讨论】:

标签: ios swift swiftui scrollview


【解决方案1】:

要在 iOS 13 上执行此操作,您需要为 UIScrollView 创建一个 SwiftUI 包装器,并使用 UIKit 方法来实现。

幸运的是,有几个开源软件包可以让您更轻松地完成这项工作。其中之一是https://github.com/Amzd/ScrollViewProxy。我过去使用过这个包,效果很好。

例子:

ScrollView { proxy in
  VStack {
    Text("A").scrollId("A")
    Text("B").scrollId("B")
    Text("C").scrollId("C")

    Button("Scroll to C") {
      proxy.scrollTo("C", alignment: .center)
    }

    Button("Scroll down") {
      proxy.scrollTo(.bottom)
    }
  }
}

【讨论】:

  • 不幸的是,我无法让 ScrollViewProxy 库工作...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-08
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 2018-12-13
相关资源
最近更新 更多