スポンサーリンク

【Obj-C】UITapGestureRecognizer コピーペーストで使えるサンプル

UITapGestureRecognizer サンプル

コーディング時に大枠を何処かからコピーペーストして修正実装

するパターンがよくあると思います。

実装時、コピペ用のテンプレートとしてご利用ください。

コードサンプル

■ 基本
UIImageView *tempImageView = [[UIImageView alloc] init];
tempImageView.frame = CGRectMake(0, 0, 320, 50);
tempImageView.image = [UIImage imageNamed:@"test.png"];;
tempImageView.backgroundColor = [UIColor yellowColor];
tempImageView.userInteractionEnabled = YES;

UITapGestureRecognizer *tempImageTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageSelector:)];
// selector にて tag 判定をしたい場合は UIImageView 側に tag をセットします。
tempImageView.tag = 1;
[tempImageView addGestureRecognizer:tempImageTapGestureRecognizer];

[self.view addSubview:tempImageView];

// 以下 selector
-(void)imageSelector:(UITapGestureRecognizer *)tapGesture{

if (sender.state == UIGestureRecognizerStateEnded){
    CGPoint tapPoint = [sender locationInView:sender.view];

    NSLog(@"tapPoint x : %f",tapPoint.x);
    NSLog(@"tapPoint y : %f",tapPoint.y);
}    

NSLog(@"imageSelector tapGesture");
    // 下記にてタップされた UIImageView の tag を取得する。
    NSLog (@"%d",tapGesture.view.tag);
    if (tapGesture.view.tag == 1){
         //
    }
}

■ タップを有効にしたい場合。と言うか下記がないとタップが反応しないので必須。
tempImageView.userInteractionEnabled = YES;

// ダブルタップにしたい場合は
doubleTapGesture.numberOfTapsRequired = 2;
タイトルとURLをコピーしました