我在这样的视图上设置手势识别器(向右滑动):
[self.currentViewController.view addGestureRecognizer:self.swipeRecognizer];
但是,视图有一些响应触摸的 UIControls。它们是自定义开关,允许您通过平移它们来打开和关闭它们,就像 UISwitch 一样。因此,当您向右平移其中一个开关时,将调用滑动手势识别器。
我仍然想将滑动识别器保留在视图的其余部分,但是如果您正在触摸其中一个开关,我该如何取消它?
我在这样的视图上设置手势识别器(向右滑动):
[self.currentViewController.view addGestureRecognizer:self.swipeRecognizer];
但是,视图有一些响应触摸的 UIControls。它们是自定义开关,允许您通过平移它们来打开和关闭它们,就像 UISwitch 一样。因此,当您向右平移其中一个开关时,将调用滑动手势识别器。
我仍然想将滑动识别器保留在视图的其余部分,但是如果您正在触摸其中一个开关,我该如何取消它?
在这里找到了一个很好的解决方案。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if (([touch.view isKindOfClass:[UIControl class]])) {
return NO;
}
return YES;
}