スポンサーリンク

【Obj-C】シングルタップ(画面を1回タッチ)イベントの設定(イベント) UITapGestureRecognizer

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);
    }
}
タイトルとURLをコピーしました