在我的项目中,我启用了一个名为“ SwipeableTabBarController”的coacopods。这些允许我的标签栏视图控制器检测平移手势并在标签之间切换。我还编写了一些代码来检测滑动手势,从而允许用户隐藏标签栏。 问题:即使用户直接点击栏项目,我的应用程序也将具有幻灯片动画。有什么办法解决这个问题?感谢您的帮助!
试图在检测到轻敲时禁用轻扫和平移手势。但是平移手势不在我的手势数组中。
答案 0 :(得分:3)
使用isSwipeEnabled = false
禁用滑动功能。默认情况下,它在SwipeableTabBarController
更新:
由于您要寻找的解决方案没有SwipeableTabBarController
库提供的动画,但仍然需要滑动功能。使用默认的UITabBarController
的方法如下。
步骤1:
创建一个默认的UITabBarController
和2个View Controller,将它们称为ViewController_1
和ViewController_2
步骤2:
为每个ViewController
创建一个类,并在ViewDidLoad()
和ViewController_1
的{{1}}方法中添加这些行。
ViewController_2
然后每次在两个类中都检测到滑动时添加此功能。
override func viewDidLoad() {
super.viewDidLoad()
let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(swiped))
swipeRight.direction = UISwipeGestureRecognizer.Direction.right
self.view.addGestureRecognizer(swipeRight)
let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(swiped))
swipeLeft.direction = UISwipeGestureRecognizer.Direction.left
self.view.addGestureRecognizer(swipeLeft)
}
这将使您能够滑动和导航到不同的ViewController,也可以使用@objc func swiped(_ gesture: UISwipeGestureRecognizer) {
if gesture.direction == .left {
if (self.tabBarController?.selectedIndex)! < 2
{
self.tabBarController?.selectedIndex += 1
}
} else if gesture.direction == .right {
if (self.tabBarController?.selectedIndex)! > 0 {
self.tabBarController?.selectedIndex -= 1
}
}
}
按钮进行导航。
希望这会有所帮助。
答案 1 :(得分:0)
您可以在点击操作中使用POD isSwipeEnabled = false
的属性
当您点击标签栏项时,它将禁用滚动动画。