iOS SDKメモ UITapGestureRecognizerを使ってタップしたことを検知してみる
UIViewを継承したビュー上でしか動作しないみたいなんだけど、
UITapGestureRecognizerクラスを使うと結構簡単にタップのジェスチャーを検知できるようになるみたい。
手順としては、こんな感じ。
- UIViewを継承したビュークラスでUITapGestureRecognizerクラスのオブジェクトを生成
※こんとき、引数に呼びたいアクションメソッド名を書く - UIViewのaddGestureRecognizerでさっきのオブジェクトを追加
- アクションメソッドを実装する
コードとしてはこんな感じのものを書いてみた。
まずはUIViewのinitWithFrameはこんな感じ。
- (id)initWithFrame:(CGRect)frame { // UIViewの初期化 self = [super initWithFrame:frame]; if (nil == self) { NSLog(@"initWithFrame is faild."); return nil; } // UIViewの背景をオレンジに変更 self.backgroundColor = [UIColor orangeColor]; // UITapGestureRecognizerの初期化 UITapGestureRecognizer* gestureTap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureTap:)] autorelease]; if (nil == gestureTap) { NSLog(@"gestureTap is faild..."); return nil; } // UIViewにUIGestureRecognizerを追加 [self addGestureRecognizer:gestureTap]; // return return self; }
んで、次はタップしたときに呼ぶアクションメソッドはこんな感じ。
- (void)gestureTap:(id)sender { NSLog(@"tap!!"); }
結果はこんな感じ。
iPhoneシミュレータで、オレンジになってるとこをドコでもいいのでタップ(マウスでクリックね)してみる。
デバッガコンソールでこんな感じでタップを検知していることを確認できる。
[Session started at 2010-10-31 08:45:19 +0900.] 2010-10-31 08:45:26.137 ColorGestureMixer[25755:207] tap!! 2010-10-31 08:45:26.732 ColorGestureMixer[25755:207] tap!! 2010-10-31 08:45:27.137 ColorGestureMixer[25755:207] tap!!
ちなみに、UITapGestureRecognizerクラスの仲間でスワイプやスクロールができるクラスもあるんだけど、追々試してみようかなっと。
んまま、そんだけ。
[amazonjs asin="4864010498″ locale="JP" title="iOSプログラミング 第2版"]
ディスカッション
コメント一覧
まだ、コメントがありません