SwiftUI でも UIKit の時と同じようにGesture操作(スワイプとかタップとか)したくなります。
Gesture 操作の始めの一歩を説明します。
Gesture 操作の始めの一歩を説明します。
Sponsor Link
スワイプ動作
SwiftUIでは、DragGestureがスワイプを検知してくれます。
以下は、スワイプした時(スワイプ終了時)に、指定したコードを実行させるコードです。
var drag: some Gesture { DragGesture() .onEnded({ _ in <やらせたいこと> }) }
onEndedの引数には、DragGesture.valueが来ていますので、移動量等で動作を変えることができます。
このコードだけではなく、どのビューでジェスチャー操作を検知するかを指定する必要もあります。
どのビューのスワイプかを指定
SwiftUIでは、Gestureをビューに付与します。
XXView() .gesture(drag)
上記で、付与したビュー上で指定したジェスチャーが検知されます。
ちなみに、UIKitの時は、GestureRecognizerをビューにアタッチしていました。
プチまとめ
非常に簡単です。UIKitでもジェスチャー認識を自分で行う必要はなかったので、それほど難しくありませんでしたが、さらに簡単になった印象です。
さらに、現在のアーキテクチャであれば、ジェスチャーとビューをきちんと分離することができるので、同じような振る舞いを複数の箇所に付与することも、非常に簡単にできます。UIKitの時は、それぞれのビューで同一の設定を行う必要がありましたが、SwiftUIであれば、コードで同一性を容易に実現できそうです。
説明は以上です。
Sponsor Link