非常に低い優先度にしたい単純なスワイプジェスチャがあります。ビューのコントロールで発生するイベントによってキャンセルされるようにしたい。最初は、これは簡単だと思いました。ジェスチャーが発生したときにイベントをキャンセルするのは簡単ですが、私はその逆を行うことができないようです。
私の解決策は、タッチ可能なものと競合する場合はジェスチャーをキャンセルすることです。これが私が一緒にハッキングしたコードです:
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
CGPoint touch = [gestureRecognizer locationInView:self.view];
return [self.view hitTest:touch withEvent:nil] == self.view;
}
これは問題の間違った解決策だと思います。私は何が欠けていますか?イベントを取得してジェスチャーをキャンセルする正しい方法は何ですか?
詳細については、2つのUISwipeGestureRecognizers(左にスワイプと右にスワイプ)をビューに追加しています。ビューにはUISliderもあります(埋め込まれたMPVolumeViewの一部)。スライダーを動かして音量を変えると、左右にスワイプすると発火します。