作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 11 个选项卡项。在 4 个选项卡项之后,它将显示更多菜单,当我单击“更多”按钮时,将显示剩余的选项卡列表 - 这应该是这样工作的。
我的问题是,当我从屏幕左侧滑动时,会填充此“更多”选项卡列表。我怎样才能避免这种情况?
最佳答案
您可以在标签栏 Controller 中遍历手势并禁用滑动
for gesture in tabBarController.view.gestureRecognizers! {
if let swipeGesture = gesture as? UISwipeGestureRecognizer {
if (swipeGesture.direction == .Left) {
swipeGesture.enabled = false
print("disabled")
}
}
}
此处 tabBarController
是标签栏 Controller 的有效实例。
您可能需要对 .Left
与 .Right
进行一些试验和错误,并仅在 Controller 的 View 或其中一个 subview 上运行它,但这应该绝对禁用该手势。
此外,尽管不太可能,但请注意同一方向的多个滑动手势,如果有,请确保仅禁用相关的手势。
在 ObjC 中:
for (UIGestureRecognizer *gesture in tabBarController.view.gestureRecognizers) {
if([gesture isKindOfClass:[UISwipeGestureRecognizer class]]) {
if(((UISwipeGestureRecognizer *)gesture).direction == UISwipeGestureRecognizerDirectionLeft) {
gesture.enabled = false;
}
}
}
关于ios - 如何从 TabBar Controller 禁用滑动手势识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33231619/
我是一名优秀的程序员,十分优秀!