0
我正在使用11个选项卡项目。 4个选项卡后,它会显示更多的菜单,当我点击'更多'按钮时,剩余的选项卡列表将会显示 - 这是它应该如何工作。如何禁用TabBar控制器的滑动手势识别器
我的问题是当我从屏幕左侧滑动这个'更多'选项卡列表正在填充。我怎样才能避免这种情况?
我正在使用11个选项卡项目。 4个选项卡后,它会显示更多的菜单,当我点击'更多'按钮时,剩余的选项卡列表将会显示 - 这是它应该如何工作。如何禁用TabBar控制器的滑动手势识别器
我的问题是当我从屏幕左侧滑动这个'更多'选项卡列表正在填充。我怎样才能避免这种情况?
您可以通过标签栏控制器的手势迭代和禁用刷卡
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;
}
}
}
是我使用左侧的菜单,使用'SWRevealViewController'我已经实施了左轻扫手势,但是当我从屏幕左端轻扫,标签的详细列表显示 – jithin
我猜这个代码是'swift',你能给'obj-c'代码,谢谢 – jithin
增加了ObjC代码。但是,您应该认真学习ObjC和Swift代码之间的转换,反之亦然,因为大多数新答案将在Swift中,而所有旧答案都有ObjC代码。它也很容易。 – lukya