SwiftUIのGestureについてまとめ
Gestureについて
SwiftUIでは、Gestureを使用することで、TapやSwipeなどを検知し、画面を更新することができます。
色々調べて実際に触ってみたところ、想像以上に強力であることが分かったため、記事として残しておきました。公式Documentはコチラです。
Gestureの種類
- TapGesture
- LongPressGesture
- DragGesture
- MagnificationGesture
- RotationGesture
が提供されているようです。またCustomで作ることもできるようです。
GestureのCallback処理
Gestureでは以下の3つのreceiverを使うことができるようです。
- updating(Gestureの値が更新されたときに発火:一時的なUIの状態を変更したいとき、@GestureStateを使用してGestureの状態を管理する)
- onChange(Gestureの値が更新されたときに発火: 永続的な値を変更したいとき)
- onEnded(Gesture終了時に発火)
three gesture composition types
- Simultaneous
- Sequenced
- Exclusive
を使用して複数のGestureを管理することで、さらに複雑な操作が出来るようです。
実際に作る
実際に使われている事例があったので、本記事内ではリンクを載せておきます。
- SwiftUI Gestures - NSScreencast
- Gestures in SwiftUI | Majid’s
- How to create a slide-over card using SwiftUI (like in Maps or Stocks) - mozzafiller
参考資料
- SwiftUIのGestureについて
- 実際に使用している例
- @Frozenについて