使用UIGestureRecognizerDelegate,识别单击事件
首先.h文件添加
UIGestureRecognizerDelegate
//长按设置情景模式 UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressShowView:)]; [self.view addGestureRecognizer:longPress]; [longPress release]; UITapGestureRecognizer* singleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(removePtzGuide)]; singleRecognizer.numberOfTapsRequired = 1; // 单击 singleRecognizer.delegate = self; [self.view addGestureRecognizer:singleRecognizer]; [singleRecognizer release];
这里一个是长按,另外则是单击
需要实现UIGestureRecognizerDelegate代理函数
#pragma mark - UIGestureDelegate - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if ([touch.view isKindOfClass:[QuadCurveMenuItem class]]) { return NO; } if ([touch.view isKindOfClass:[KxMenuOverlay class]]) { [[NSNotificationCenter defaultCenter] postNotificationName:@"dismissMenu" object:nil]; } if ([touch.view isKindOfClass:[UISlider class]]) { return NO; } else { return YES; } }
return yes则响应这个事件,反之则无响应,这样可以过滤掉一些不需要响应或者重复的事件