У меня есть следующий код в viewDidLoad на UIViewController:UIScreenEdgePanGestureRecognizer Срабатывание Несколько раз
UIScreenEdgePanGestureRecognizer *edgeRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleRightEdgeSwipe:)];
edgeRecognizer.edges = UIRectEdgeRight;
[self.view addGestureRecognizer:edgeRecognizer];
и цели, чтобы вызвать представление, чтобы скользить в, когда правый край жест обнаружен.
-(void)handleRightEdgeSwipe:(UIGestureRecognizer*)sender
{
NSLog(@"Showing Side Bar");
[self presentPanelViewController:_lightPanelViewController withDirection:MCPanelAnimationDirectionRight];
}
Но я вижу, что функция «handleRightEdgeSwipe» срабатывает несколько раз - иногда в 5 раз, что делает вид бара на сторону, которая должна плавно анимировать слайд в прошить несколько раз.
(ПРИМЕЧАНИЕ. Я попытался запустить представление из UIButton, и он отлично работает).
Почему жест правой стороны срабатывает несколько раз и как я могу ее исправить?
Если вы хотите, чтобы он перемещался, а не таскался пальцем, вместо этого вы должны использовать UISwipeGestureRecognizer. Он распознает одно событие, а не непрерывное движение. – rdelmar
@rdelmar Я только хочу, чтобы вызвать по краю салфетки. Как я могу использовать UISwipeGestureRecognizer на правом краю? – motionpotion
В методе действий вам нужно посмотреть на значение locationInView :, и только инициировать действие, если значение x этого местоположения находится в пределах области, которую вы хотите. – rdelmar