0

Я добавляю UIPanGestureRecognizer к одному пользовательскому виду в моем контроллере представления.Конфликты UIPanGestureRecognizer

Я также использую MFSideMenu для скользящего меню, которое в своей структуре добавляет UIPanGestureRecognizer к основному навигационному окну NavigationViewController.view.

Иногда, когда я просматриваю внутри своего пользовательского представления, панорама фактически встречается в MavigationViewController.view.

Что вызывает эту проблему, является следующий код в реализации MFSideMenu от:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 

    if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) { 

    if([gestureRecognizer.view isEqual:self.rootViewController.view] && 
     [self rootViewControllerPanEnabled]) 
     { 
     return YES; 
     } 

    return NO; 
    } 

} 

Apperantely иногда (1 из 5-10), этот метод возвращает YES, где он должен вернуть NO, когда панорамирование на посмотри сам!

Проблема заключается в том, что вместо панорамирования пользовательского вида открывается скользящее меню.

Я в значительной степени пробовал все, что мог себе представить - это поведение просто не имеет никакого смысла.

ОБНОВЛЕНИЕ: проблема только в iOS 7 - см. Ниже мой ответ на исправление.

+0

Я предполагаю, что ваш пользовательский вид добавляется к виду корня, поэтому он запуская gestureRecognizer в классе зрения корня. Я попытался бы увидеть, если вы можете установить переменную rootViewControllerPanEnable в корневом представлении на «Нет» в обработчике метода gesture делегата в вашем пользовательском классе (если время работы работает). – GuybrushThreepwood

ответ

1

Обнаружено решение; Видимо, проблема в прошивке 7.

Чтобы исправить это, просто реализовать UIGestureRecognizerDelegate в контроллере представления и реализация:

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

Это фиксированное мою случайную проблему!

Кредитов UIPanGestureRecognizer sometimes not working on iOS 7

Смежные вопросы