有时我们会在一个页面上添加单击和双击两个手势,那么问题就来了,不作处理的条件下双击手势的事件是触发不了的,因为点一下出发了单击手势的事件。
只需要添加一句代码即可解决:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(singleTap:)];
[self addGestureRecognizer:singleTap];
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doubleTap:)];
doubleTap.numberOfTapsRequired = 2;
[self addGestureRecognizer:doubleTap];
//这句代码是关键,当系统检测不到双击手势时执行再识别单击手势
[singleTap requireGestureRecognizerToFail:doubleTap];
//单击手势事件
- (void)singleTap:(UITapGestureRecognizer*)gesture{
}
//双击手势事件
- (void)doubleTap:(UITapGestureRecognizer*)gesture{
}