Распознаватель нескольких свайпов в разных компонентах контроллера ios

У меня есть UIViewController с распознавателем смахивания по умолчанию, чтобы открывать/закрывать правое боковое меню моего приложения (я использую подключаемый модуль ECSlidingViewController). Этот распознаватель смахивания настроен на родительский вид контроллера.

Вот часть кода для обнаружения свайпа для открытия правого бокового меню:

-(void)viewDidAppear:(BOOL)animated {
      [super viewDidAppear:animated];
      [self.view addGestureRecognizer:self.slidingViewController.panGesture];}

Внутри этого UIViewController у меня есть UIImageView, мне нужно обнаружить смахивание во всех направлениях (вправо, влево, вверх, вниз). До сих пор я установил все пролистывания на Storyboard на UIImageView, но приложение обнаруживает только пролистывание одного компонента (тот, что в родительском представлении, чтобы открыть правое боковое меню, или тот, что в UIImageView), а не оба.

Как я могу обнаружить прокрутку на обоих компонентах?


person Fernando Santiago    schedule 03.04.2015    source источник


Ответы (1)


Это происходит потому, что ваши распознаватели жестов в представлении изображения добавляются во время initWithCoder, а другой добавляется во время viewDidLoad, что происходит после initWithCoder.

Если вы хотите, чтобы имели место оба, вам нужно реализовать gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:, иначе iOS будет просто жадной и примет последний добавленный распознаватель жестов, если для одного и того же жеста имеется более одного (как вы видите сейчас).

person Dreaming In Binary    schedule 03.04.2015