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)
}
}
}
}
}
こんな感じで上部のボタンを押すと
Button("Jump to #9") {
value.scrollTo(9, anchor: .top)
}
"9"のところまで自動でスクロールします。
この記事が気に入ったらサポートをしてみませんか?