Handling Tap Gestures

4281 ワード

https://developer.apple.com/documentation/uikit/touches_presses_and_gestures/handling_uikit_gestures/handling_tap_gestures
"Use brief taps on the screen to implement button-like interactions with your content."
画面上の短いタブを使用して、コンテンツ内でボタンなどのインタラクションを実現します.

Overview


タブジェスチャーでは、画面に軽く触れることができる1つ以上の指が検出されます.このジェスチャーを実行する指は、秒数点の間を移動する必要がなく、指が画面に触れる数を設定することができます.たとえば、タブジェスチャーバーの年齢を、単一のタブ、ダブルタブ、ツリータブを検出するように設定できます.
ジェスチャーマネージャは、次のいずれかの方法で実装できます.
  • コードの作成方法.ビューのaddGestureRecognizer(_:)メソッドを呼び出します.
  • インタフェースビルダーで実装する方法.ライブラリから適切なオブジェクトをドラッグし、ビューに配置します.
  • UITapGestureRecognizerオブジェクトは、ボタンのイベント処理機能と同様のイベント処理機能を提供する.ビューのタブを検出し、アクションメソッドにレポートします.タブジェスチャーは離散的です.したがって、動作方法は、タブジェスチャーの認識に成功した場合にのみ呼び出される.また、タブのタイトルバーの年齢を設定して、タブのカウントを要求することもできます.たとえば、アクションメソッドを呼び出す前に、1つまたは2つのタブがあります.
    Listing 1は、ビュー内の成功タブに反応する動作方法を示している.ビューはアニメーションによって新しい位置に処理されます.任意のアクションを実行する前に、ジェスチャーマネージャのステータスプロパティを常にチェックする必要があります.これは離散したジェスチリコグニゼでもそうだ.
    Listing 1 Handling a tap gesture
    @IBAction func tapPiece(_ gestureRecognizer : UITapGestureRecognizer ) {
       guard gestureRecognizer.view != nil else { return }
            
       if gestureRecognizer.state == .ended {      // Move the view down and to the right when tapped.
          let animator = UIViewPropertyAnimator(duration: 0.2, curve: .easeInOut, animations: {
             gestureRecognizer.view!.center.x += 100
             gestureRecognizer.view!.center.y += 100
          })
          animator.startAnimation()
       }}
    ラベル・ページ・タイトル・レコーダのコードが呼び出されていない場合は、次の条件がtrueであるかどうかを確認し、必要に応じて変更します.
  • ビューのisUserInteractionEnabledプロパティがtrueに設定されていることを確認します.デフォルトでは、画像ビューとラベルはfalseです.
  • ラベルページの具体的な数字がnumberOfTapsRequiredの数字と一致していることを確認してください.
  • 指の数がnumberOfTouchesRequiredの特定の数と一致することを確認します.