我有一个简单的滑动手势,我希望它的优先级很低。我希望它被视图上的控件发生的事件取消。起初,我认为这很简单。当手势发生时很容易取消事件,但我似乎不能做相反的事情。
如果手势与任何可触摸的东西冲突,我的解决方案是取消手势。这是我一起破解的代码:
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
CGPoint touch = [gestureRecognizer locationInView:self.view];
return [self.view hitTest:touch withEvent:nil] == self.view;
}
我觉得这是解决问题的错误方法。我错过了什么?获取事件以取消手势的正确方法是什么?
有关更多上下文,我在视图中添加了两个 UISwipeGestureRecognizers(向左滑动和向右滑动)。视图中还有一个 UISlider(嵌入式 MPVolumeView 的一部分)。当我移动滑块来改变音量时,向左或向右滑动会触发。