在 iOS 13 上以编程方式滚动 SwiftUI ScrollView
Posted
技术标签:
【中文标题】在 iOS 13 上以编程方式滚动 SwiftUI ScrollView【英文标题】:Programmatically Scroll SwiftUI ScrollView on iOS 13 【发布时间】:2021-03-24 20:27:02 【问题描述】:据我了解,对于 ios 14,您可以使用 ScrollViewReader 随着滚动视图中的内容发生变化而自动向上或向下滚动视图。
我处于必须支持 iOS 13 的情况。有没有办法,甚至是一种 hacky 方式,以编程方式在 iOS 13 中滚动滚动视图?
【问题讨论】:
这是否回答了您的问题***.com/a/60855853/12299030? 【参考方案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 库工作...以上是关于在 iOS 13 上以编程方式滚动 SwiftUI ScrollView的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 11 上以编程方式滚动 UISearchController 的搜索栏不会消失
SwiftUI Horizontal ScrollView 项目在 iOS 14.3 中滚动时变得不可见,但在 iOS 13 中工作正常