見出し画像

New SwiftUI! - ScrollViewReader

ある特定の場所まで自動でスクロールさせるものです。公式のドキュメントです。

日本語では以下の記事が良さそうです。

ScrollViewReaderのclosureで返ってきてるvalueの型はScrollViewProxyです。
ScrollViewProxyはscrollToという関数を持っています。
func scrollTo<ID>(ID, anchor: UnitPoint?)

実際のコードをみてみましょう。

struct ContentView: View {
   let colors: [Color] = [.red, .green, .blue]
   
   var body: some View {
       ScrollView {
           ScrollViewReader { value in
               Button("Jump to #9") {
                   value.scrollTo(9, anchor: .top)
               }
               
               ForEach(0..<10) { i in
                   Text("Example \(i)")
                       .frame(width: 300, height: 300)
                       .background(colors[i % colors.count])
                       .id(i)
                 
               }
               
           }
       }
   }
}

画像1

こんな感じで上部のボタンを押すと

 Button("Jump to #9") {
        value.scrollTo(9, anchor: .top)
  }

"9"のところまで自動でスクロールします。




この記事が気に入ったらサポートをしてみませんか?