UIViewにタップした際のイベントを登録する

こんにちは、@yoheiMuneです。
今日は、UIViewを拡張せずともタッチイベントを登録する方法を学んだので、ブログに残しておきたいと思います。


UIViewクラスのaddGestureRecognizer:メソッド

このメソッドでジェスチャーを追加することで、Viewをタップした際の動作を追加することが出来ます。以下のような手順で実装します。

UITapGestureRecognizerオブジェクトを作成

どのような動きをするかのジェスチャーオブジェクトを作成します。今回はTapジェスチャーを追加します。

UITapGestureRecognizer *tapGesture = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(colorPicker:)]autorelease];

initWithTargetには、タップした際に呼び出すメソッドを持つオブジェクトを、actionには、タップした際のメソッドを指すSelectorを指定します。

UIViewにジェスチャーを追加

上記で作成したジェスチャーをUIViewのaddGestureRecognizerメソッドで追加します。

[aView addGestureRecognizer:tapGesture];

たったこれだけで、簡単にUIViewにタップイベントを追加することが出来ます。簡単ラクチン♪(´ε` )


他にも

今回ブログに書いたタップジェスチャー以外にも、色々なジェスチャーを登録出来るようです。以下のが一覧です。

UITapGestureRecognizer タップ時のイベント
UIPinchGestureRecognizer ピンチ時のイベント
UIRotationGestureRecognizer 回転した時のイベント
UISwipeGestureRecognizer スワイプした時のイベント
UIPanGestureRecognizer パンした時のイベント
UILongPressGestureRecognizer 長押しした際のイベント

参考サイト

上記の内容の詳細は、以下をご確認下さい。
UIView Class Reference
UIGestureRecognizer Class Reference


最後に

UIViewは色々な機能を持っていて便利ですね。ありがたい。もっともっと色々な事を学べるといいなぁ(*´∇`*)


以下は関連サイトです。ご参考になれば幸いです。