iPhone開発 シングルタップ(画面を1回タッチ)イベントの設定(イベント) UITapGestureRecognizer ios 逆引き サンプル
iPhone ios objective-c サンプル
iPhone の開発で、ボタンやテーブルビュー以外をタップ時に処理をするイベントを実装する方法です。
UITapGestureRecognizer をインスタンス化します。
UITapGestureRecognizer *singleFingerDTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
Viewへ関連付けします。
[self.view addGestureRecognizer:singleFingerDTap];
以下が、タップされた時に呼び出されるメソッドになります。上記の selector にて設定をしています。
– (void)handleSingleTap:(UIGestureRecognizer *)sender {
// ジェスチャーの状態が End の場合のみ処理をしたい場合は、下記の条件分岐処理をしましょう。
if (sender.state == UIGestureRecognizerStateEnded){
タップされた View から位置を取得します。
CGPoint tapPoint = [sender locationInView:sender.view];
ログに、タップされた ポジション x の値を表示します。
NSLog(@”tapPoint x : %f”,tapPoint.x);
ログに、タップされた ポジション y の値を表示します。
NSLog(@”tapPoint y : %f”,tapPoint.y);
}
}
また、タップが反応しない場合は
関連付けした View へ
self.view.userInteractionEnabled = YES;
を追加して下さい。
コードサンプル
// シングルタップ // Tapping (any number of taps) // UITapGestureRecognizer UITapGestureRecognizer *singleFingerDTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; [self.view addGestureRecognizer:singleFingerDTap]; // セレクター - (void)handleSingleTap:(UIGestureRecognizer *)sender { if (sender.state == UIGestureRecognizerStateEnded){ CGPoint tapPoint = [sender locationInView:sender.view]; NSLog(@"tapPoint x : %f",tapPoint.x); NSLog(@"tapPoint y : %f",tapPoint.y); } }