Одновременные жесты iOS не работают должным образом
Я пытаюсь осуществить одновременный удар двумя пальцами влево и два пальца вправо.
В моем viewDidLoad я инициализирую жесты следующим образом:
swipeRecognizerL= [[UISwipeGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSwipeL)];
swipeRecognizerL.direction=UISwipeGestureRecognizerDirectionLeft;
swipeRecognizerL.numberOfTouchesRequired=2;
swipeRecognizerL.delegate = self;
swipeRecognizerR= [[UISwipeGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSwipeR)];
swipeRecognizerR.direction=UISwipeGestureRecognizerDirectionRight;
swipeRecognizerR.numberOfTouchesRequired=2;
swipeRecognizerR.delegate = self;
Затем я добавляю распознаватели в AVPlayerViewController;
AVPlayerViewController *controller = [[AVPlayerViewController alloc]init];
[controller.view.subviews[0] addGestureRecognizer:swipeRecognizerR];
[controller.view.subviews[0] addGestureRecognizer:swipeRecognizerL];
Методы делегата выглядят так:
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
return YES;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
NSLog(@"This one:%@, theOtherOne:%@", gestureRecognizer, otherGestureRecognizer);
return YES;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
return YES;
}
Теперь отдельные касания двумя пальцами распознаются нормально, но когда я делаю двойное касание двумя пальцами (один влево, один вправо), каким-то образом, это кажется интерпретируемым как жест щепотки, согласно входу в систему shouldRecognizeSim одновременно ouslyWithGestureRecognizer:
Вот этот:; target = <(action = handleSwipeR, target =)>; numberOfTouchesRequired = 2; direction = right>, theOtherOne:; target = <(action = _handlePinchGesture:, target =) >>
Любая подсказка, что я делаю не так? Дайте мне знать, если вам нужна дополнительная информация.