In the following code snippet, I use proxy.scrollTo()
to scroll to a target. In order to animate the scrolling process, I wrapped this function call inside withAnimation
. This code works on iOS 16, but not on iOS 17. In iOS 17, it does scroll, but without any animation. Is this a bug or is there an API change? Thanks!
import SwiftUI
struct ScrollTest: View {
var body: some View {
ScrollViewReader { proxy in
List {
Button("Scroll") {
withAnimation {
proxy.scrollTo(15, anchor: .top)
}
}
ForEach(1..<50) { i in
Text("Item (i)")
.id(i)
}
}
}
}
}
2
Answers
Okay so turns out there’s been a deprecation in the API,
ScrollViewReader
is now deprecated and replaced with a new.scrollPosition()
modifier.Apple documentation doesn’t indicate ScrollViewReader as deprecated. Though I’m experiencing a lot of bugs with ScreenViewReader.