Проблема с распознавателем жестов панорамирования SWRevealViewController

Я использую SWRevealViewController от John-Lluch. Мне нужно использовать жест панорамирования для просмотра боковых панелей, и я использую пролистывание для просмотра моих предыдущих и следующих статей. Однако жест панорамирования можно только обнаружить.

ОБНОВЛЕНО: мой жест смахивания работал, если я отключил жест панорамирования.

Жест панорамирования

 [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];

Жест смахивания

UISwipeGestureRecognizer *left = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft:)] autorelease];
left.direction = UISwipeGestureRecognizerDirectionLeft;

UISwipeGestureRecognizer *right = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)] autorelease];
right.direction = UISwipeGestureRecognizerDirectionRight;

[self.view addGestureRecognizer:left];
[self.view addGestureRecognizer:right];

person shoujo_sm    schedule 23.07.2014    source источник
comment
Добавьте больше кода или деталей, чтобы понять, почему вы использовали распознаватель жестов смахивания...   -  person NKB    schedule 23.07.2014
comment
я не проблема в SWRevealViewController, проверьте свой жест смахивания   -  person Anbu.Karthik    schedule 23.07.2014
comment
почему вы не используете его как: -(IBAction) SwipeMe : (UISwipeGestureRecognizer *) recognizer{ NSLog(@"swiped"); } просто свяжите его со своим представлением.   -  person Watsche    schedule 23.07.2014
comment
@Watsche Мой жест смахивания работал, если я отключил жест панорамирования.   -  person shoujo_sm    schedule 23.07.2014
comment
@NKB Я уже объяснил в своем содержании. Панно, чтобы открыть боковые панели, где проведите пальцем, чтобы прочитать статьи.   -  person shoujo_sm    schedule 23.07.2014
comment
@ Anbu.Karthik Мой жест смахивания работал, если я отключил жест панорамирования.   -  person shoujo_sm    schedule 23.07.2014
comment
@shoujo_sm Да, я понял, чувак, где ты добавишь метод жеста смахивания   -  person Anbu.Karthik    schedule 23.07.2014
comment
Я добавил его в self.view контроллера представления так же, как жест панорамирования.   -  person shoujo_sm    schedule 23.07.2014


Ответы (2)


[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];

[self.view addGestureRecognizer:left];

Заметили разницу? Реализуйте SwipeGesture как свойство в вашем .h или сделайте его в своем .xib и свяжите его с вашим .h

person Community    schedule 23.07.2014

Трудно одновременно работать с распознавателем жестов панорамирования и смахивания. У вас будет обработка делегатов SWRevealViewController для жеста панорамирования, а также жеста смахивания для текущего контроллера представления.

Как Apple предлагает различать жест, вы можете использовать следующий метод

- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}

Выдержка из Документация Apple:

Этот метод вызывается, когда распознавание жеста с помощьюgestRecognizer или otherGestureRecognizer блокирует распознавание жеста другим распознавателем жестов. Обратите внимание, что возврат YES гарантирует одновременное распознавание; С другой стороны, возврат NO не гарантирует предотвращения одновременного распознавания, поскольку делегат другого распознавателя жестов может вернуть YES.

person NKB    schedule 23.07.2014
comment
Привет, я уже включил YES для метода, но распознаватель панорамирования все еще обгоняет движение смахивания - person shoujo_sm; 23.07.2014
comment
Он обгонит, но должен обнаружить оба распознавателя... Вы не можете расставить приоритеты жестов... - person NKB; 23.07.2014