在iOS 13上以编程方式滚动SwiftUI ScrollView



我知道,对于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)
}
}
}

最新更新