Swiftでタップ/スワイプのイベント処理実装・UITapGestureRecognizerとUISwipeGestureRecognizer

スポンサーリンク

iOS/Swift でタップやスワイプなどのアクションに対応するイベント処理の実装を書いてみました。UITapGestureRecognizer, UISwipeGestureRecognizer などを使う。UISwipeGestureRecognizer ではスワイプの方向を指定することで、どちらの方向へのスワイプかを識別できます。

— 環境 —
Xcode 7.0
Swift 2.0
Mac OS X Yosemite 10.10.5

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

UITapGestureRecognizer, UISwipeGestureRecognizer を使って実装する

以下の例では、1本指でのタップ、下から上へのスワイプ(Up)、上から下へのスワイプの(Down) の3通りの操作に対する処理を書いてみました。

UITapGestureRecognizer クラス等に action としてハンドラー名(イベントを処理するメソッド名)を指定して、同名のハンドラを実装するだけですので、比較的簡単に実装できます。viewDidLoad() の中で、各々のジェスチャーに対するオブジェクトを作成して、ビューに addGestureRecognizer() で追加する。

UISwipeGestureRecognizer の例では、numberOfTouchesRequired(操作する指の数)と direction(スワイプの方向)を指定しています。

各々ジェスチャーのハンドラとして、テスト用にそれぞれの動作の文字列をコンソールに出力するだけの簡単な実装を作成しました。タップしたら「Tapped!」、上スワイプで「Swiped up!」、下スワイプで「Swiped down!」が Xcode 上コンソールに出力されればOKです。

最初ハンドラーのメソッドに private を付けていたらエラーになった。private を外したところ正常に動作させることができました。

スポンサーリンク
 
スポンサーリンク

Leave Your Message!