繁体   English   中英

如何从TabBar控制器禁用滑动手势识别器

[英]How to disable swipe gesture recognizer from TabBar controller

我正在使用11个Tab项目。 在4个选项卡项之后,它将显示更多菜单,当我单击“更多”按钮时,将显示其余的选项卡列表-这就是它的工作方式。

我的问题是,当我从屏幕左侧滑动时,此“更多”标签列表正在填充。 如何避免这种情况?

您可以在标签栏控制器中浏览手势并禁用滑动

    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;
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM