0

Я использую 11 элементов табуляции. После 4 элементов вкладки отобразится больше меню, и когда я нажму кнопку «больше», отобразится оставшийся список вкладок - так оно и должно работать.Как отключить распознаватель жестов из контроллера TabBar

Моя проблема в том, что, когда я прокручиваю с левой стороны экрана, этот список вкладок «больше» заполняется. Как я могу избежать этого?

ответ

1

Вы можете перемещаться с помощью жестов в контроллере бар вкладки и отключить салфетки

for gesture in tabBarController.view.gestureRecognizers! { 
     if let swipeGesture = gesture as? UISwipeGestureRecognizer { 
      if (swipeGesture.direction == .Left) { 
       swipeGesture.enabled = false 
       print("disabled") 
      } 
     } 
    } 

Здесь tabBarController является действительным экземпляром контроллера панели вкладок.

Возможно, вам придется пройти небольшую пробную версию с ошибкой .Left против .Right и запустить это только на представлении контроллера или в одном из подзонов, но это должно обязательно отключить жест.

Кроме того, хотя это маловероятно, обратите внимание на несколько жестов салфетки в одном направлении, и если есть, убедитесь, что вы отключили только соответствующий.

В ObjC:

for (UIGestureRecognizer *gesture in tabBarController.view.gestureRecognizers) { 
    if([gesture isKindOfClass:[UISwipeGestureRecognizer class]]) { 
     if(((UISwipeGestureRecognizer *)gesture).direction == UISwipeGestureRecognizerDirectionLeft) { 
      gesture.enabled = false; 
     } 
    } 
} 
+0

да я с помощью меню левой стороны, используя 'SWRevealViewController' я реализовал оставленный красть жест, но когда я красть от левого края экрана, вкладка более список показывает – jithin

+0

я предположим, что этот код находится в 'swift', можете ли вы дать код в' obj-c', спасибо – jithin

+1

Добавлен код ObjC. Тем не менее, вам следует серьезно изучить преобразование кода ObjC и Swift, и наоборот, поскольку большинство новых ответов будут в Swift, а все старые ответы имеют код ObjC. Это тоже очень легко. – lukya