onScrollVisibilityChange
onScrollVisibilityChange で特定のViewが画面にスクロールイン・スクロールアウトした時のアクションを実装できるように
例えば動画プレイヤーがスクロールインしたら再生を開始し、スクロールアウトしたら停止するなど
VideoPlayer(player: player)
.onScrollVisibilityChange(threshold: 0.2) { visible in
if visible {
player.play()
} else {
player.pause()
}
}
ScrollPosition が新しくなり、従来通りの特定のIDを持つViewの指定だけでなく、具体的なオフセットや端なども指定できるように
struct ContentView: View {
@State private var position: ScrollPosition =
.init(idType: Int.self)
var body: some View {
ScrollView {
// ...
}
.scrollPosition($position)
.overlay {
FloatingButton("Back to Invitation") {
position.scrollTo(edge: .top)
}
}
}
}