[SwiftUI]ビューにイベントを追加する「ジェスチャ(Gesture)」

SwiftUI
スポンサーリンク

ジェスチャーとは?

スマホ, アプリ, ニュース, ウェブ, インターネット, 情報, ネット, 記事, 報道, ブログ, 漫画

SwiftUIのButtonやToggleビューには、タップされた時に処理が実行されるイベントがあります。

TextやImageには、こうしたイベントがありません。

イベントを持っていないビューにイベントを追加する機能を「ジェスチャー」と呼びます。

タップ

SwiftUIには、次のようなタップイベントを追加するジェスチャーが用意されています。

func onTapGesture ( count : Int, perform action : { }) -> some View

count : タップ回数
perform : 処理

countで指定した回数文タップされた時に、performで指定した処理を行います。

回数はデフォルトでは1で、2を設定することでダブルタップにすることも可能です。

 var body: some View {
        Text("タップ")
            .onTapGesture(count: 1, perform: {
                //処理
            })
    }

上記はテキストビューをタップした時に、イベントを起こす例です。

長押し

コンピューター, スマート フォン, オンライン, デジタル, バナー, ヘッダー, データ, モバイル

長押しには、次のようなジェスチャが用意されています。

func longPressGesture( minimumDuration : Double, maximumDistance : CGFloat ,
pressing : ((Bool) -> Void )? , perform action : @escaping () -> Void) -> som View

minimumDuration : 長押しと判別する最小時間
maximumDistance : 長押しの場所がどれだけずれても良いか
pressing : 押された時と離された時に行うクロージャ
perform : 長押しで行う処理

最初の2つは長押しを判定するための時間と距離の条件を指定します。

距離というのは、最初にタップした位置からどれだけずれても良いかです。

performで、長押しした時に行う処理を実行します。

 Text("タップ")
            .onLongPressGesture(minimumDuration: 3, maximumDistance: 5, perform: {
                //処理
            })

上記は、テキストに長押しのジェスチャをつけた例です。

その他のジェスチャ

その他にもジェスチャを細かく設定できる.gestureモディファイアやドラッグ時の処理を設定できるDragGestureなどがあります。

まとめ

ジェスチャーを使うことで、ビューにイベントを追加することが出来ます。

SwiftUIには、様々なイベントのジェスチャーが用意されています。

おすすめの記事

コメント

タイトルとURLをコピーしました