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;
