我知道,对于iOS 14,您可以使用ScrollViewReader在滚动视图中的内容发生变化时自动向上或向下滚动视图。
我现在的处境是必须支持iOS 13。有没有一种方法,甚至是一种巧妙的方法,可以在iOS 13中以编程方式滚动滚动视图?
要在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)
}
}
}