单击双击手势(UITapGestureRecognizer)

时间:2021-09-29 13:44:44

- (void)viewDidLoad

{

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 200, 110, 200)];

imageView.contentMode = UIViewContentModeScaleAspectFit;

[imageView setImage:[UIImage imageNamed:@"xxx.bundle/1.jpg"]];

imageView.userInteractionEnabled = YES;

[self.view addSubview:imageView];

UITapGestureRecognizer *singleTapGestureRecognizer = [[UITapGestureRecognizeralloc]initWithTarget:self action:@selector(singleTap:)];

[singleTapGestureRecognizer setNumberOfTapsRequired:1];

[imageView addGestureRecognizer:singleTapGestureRecognizer];

UITapGestureRecognizer *doubleTapGestureRecognizer = [[UITapGestureRecognizeralloc]initWithTarget:self action:@selector(doubleTap:)];

[doubleTapGestureRecognizer setNumberOfTapsRequired:2];

[imageView addGestureRecognizer:doubleTapGestureRecognizer];

//这行很关键,意思是只有当没有检测到doubleTapGestureRecognizer 或者 检测doubleTapGestureRecognizer失败,singleTapGestureRecognizer才有效

[singleTapGestureRecognizer requireGestureRecognizerToFail:doubleTapGestureRecognizer];

}

- (void)singleTap:(UIGestureRecognizer*)gestureRecognizer

{

NSLog(@"-----singleTap-----");

[self.view setBackgroundColor:[UIColor redColor]];

}

- (void)doubleTap:(UIGestureRecognizer*)gestureRecognizer

{

[self.view setBackgroundColor:[UIColor blueColor]];

NSLog(@"-----doubleTap-----");

}