UISwitch正在解雇UISwipeGestureRecognizer

时间:2013-05-16 00:35:35

标签: uiview uiswitch uicontrol uiswipegesturerecognizer

我正在这样的视图上设置手势识别器(向右滑动):

[self.currentViewController.view addGestureRecognizer:self.swipeRecognizer];

但是,该视图有一些响应触摸的UIControl。它们是自定义开关,允许您通过平移它们来打开和关闭它们,就像UISwitch一样。因此,当您将其中一个开关平移到右侧时,将调用滑动手势识别器。

我仍然希望将滑动识别器保留在视图的其余部分,但如果您触摸其中一个开关,我该如何取消它?

1 个答案:

答案 0 :(得分:4)

找到了一个很好的解决方案here

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if (([touch.view isKindOfClass:[UIControl class]])) {
        return NO;
    }
    return YES;
}