[SwiftUI] SwiftUIでのgesture操作

SwiftUI

     
⌛️ < 1 min.
SwiftUI でも UIKit の時と同じようにGesture操作(スワイプとかタップとか)したくなります。
Gesture 操作の始めの一歩を説明します。

スワイプ動作

SwiftUIでは、DragGestureがスワイプを検知してくれます。
以下は、スワイプした時(スワイプ終了時)に、指定したコードを実行させるコードです。

var drag: some Gesture {
    DragGesture()
    .onEnded({ _ in
        <やらせたいこと>
    })
}

onEndedの引数には、DragGesture.valueが来ていますので、移動量等で動作を変えることができます。
このコードだけではなく、どのビューでジェスチャー操作を検知するかを指定する必要もあります。




どのビューのスワイプかを指定

SwiftUIでは、Gestureをビューに付与します。

XXView()
.gesture(drag)

上記で、付与したビュー上で指定したジェスチャーが検知されます。
ちなみに、UIKitの時は、GestureRecognizerをビューにアタッチしていました。

プチまとめ

非常に簡単です。UIKitでもジェスチャー認識を自分で行う必要はなかったので、それほど難しくありませんでしたが、さらに簡単になった印象です。
さらに、現在のアーキテクチャであれば、ジェスチャーとビューをきちんと分離することができるので、同じような振る舞いを複数の箇所に付与することも、非常に簡単にできます。UIKitの時は、それぞれのビューで同一の設定を行う必要がありましたが、SwiftUIであれば、コードで同一性を容易に実現できそうです。

説明は以上です。




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です