How to scroll to a specific row in a list
About 2 min
How to scroll to a specific row in a list 관련
SwiftUI by Example
Back to Home
How to scroll to a specific row in a list | SwiftUI by Example
How to scroll to a specific row in a list
Updated for Xcode 15
If you want to programmatically make SwiftUI's List
move to show a specific row, you should embed it inside a ScrollViewReader
. This provides a scrollTo()
method on its proxy that can move to any row inside the list, just by providing its ID and optionally also an anchor.
For example, this creates 100 rows in a list, and when you press the button it will scroll directly to the row with ID 50:
struct ContentView: View {
var body: some View {
ScrollViewReader { proxy in
VStack {
Button("Jump to #50") {
proxy.scrollTo(50)
}
List(0..<100, id: \.self) { i in
Text("Example \(i)")
.id(i)
}
}
}
}
}
For more control over your scroll behavior, add an anchor
as the second parameter, like this: proxy.scrollTo(50, anchor: .top)
.
Tips
If you call scrollTo()
inside withAnimation()
the movement will be animated.
Similar solutions…
How to flash the scroll bar indicators of a ScrollView or List | SwiftUI by Example
How to flash the scroll bar indicators of a ScrollView or List
How to hide the scroll indicators in ScrollView, List, and more | SwiftUI by Example
How to hide the scroll indicators in ScrollView, List, and more
How to allow row selection in a list | SwiftUI by Example
How to allow row selection in a list
How to adjust List row separator insets | SwiftUI by Example
How to adjust List row separator insets
How to add custom swipe action buttons to a List row | SwiftUI by Example
How to add custom swipe action buttons to a List row