Codementor Events

Creating a SwiftUI Scroll-to Feature with ScrollViewReader

Published Oct 23, 2023
Creating a SwiftUI Scroll-to Feature with ScrollViewReader

Detail Video on Youtube click here to watch !

Introduction:
In this tutorial, we’ll guide you through the process of creating a SwiftUI app that allows users to jump to a specific item in a List using ScrollViewReader.

Step 1: Setting up the Project To get started, create a new SwiftUI project in Xcode. You can use the following code snippet as your starting point. This code sets up a simple SwiftUI view with a list and a text field for jumping to specific items.

struct ContentView: View {
    
    @State var inputtext: String = ""
    
    var body: some View {
        ScrollViewReader { proxy in
            VStack {
                List(0..<100, id: \.self) { i in
                    Text("Item \(i)")
                        .id(i)
                }
                
             HStack {
              TextField("Jump to", text: $inputtext)
               .padding(.leading, 20)
              Button("Jump") {
                  proxy.scrollTo(Int(inputtext))
               }
                .padding(20)
                }
            }
        }
    }
}

Step 2: Understanding the Code

  • We start with a @State variable called inputtext` to capture the user's input.
  • The ScrollViewReader is used to make the list scrollable.
  • The List contains 100 items with unique identifiers, and each item is labeled as "Item X," where X is the item's index.
  • A TextField and a "Jump" Button allow users to specify an item to jump to.

Step 3: Testing the App Build and run your project to see how the scroll-to feature works. Users can enter a number in the text field and press the "Jump" button to scroll to the specified item.

Conclusion:
The magic line of code is proxy.scrollTo(50) magic which is given by ScrollViewReader

Discover and read more posts from Abdul Karim
get started
post commentsBe the first to share your opinion
Show more replies