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