首先.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则响应这个事件,反之则无响应,这样可以过滤掉一些不需要响应或者重复的事件