Suponiendo que está usando UITabBarConroller
Todos a su hijo ViewControllers puede Heredar de una clase que hace todo el trabajo pesado por ti.
Esta es la forma en que lo he hecho
class SwipableTabVC : UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let left = UISwipeGestureRecognizer(target: self, action: #selector(swipeLeft))
left.direction = .left
self.view.addGestureRecognizer(left)
let right = UISwipeGestureRecognizer(target: self, action: #selector(swipeRight))
right.direction = .right
self.view.addGestureRecognizer(right)
}
func swipeLeft() {
let total = self.tabBarController!.viewControllers!.count - 1
tabBarController!.selectedIndex = min(total, tabBarController!.selectedIndex + 1)
}
func swipeRight() {
tabBarController!.selectedIndex = max(0, tabBarController!.selectedIndex - 1)
}
}
lo tanto todas sus viewcontrollers que forman parte de UITabControllers puede heredar de SwipableTabVC
en lugar de UIViewController.
¿No sería posible animar como en el ejemplo de youtube de Android en la publicación original? – user1689272
He creado controles de pestañas más fluidos en el pasado y era una solución mucho más personalizada que el ejemplo anterior de la barra de pestañas. La última vez que hice algo así, creé un controlador de vista muy largo que contenía todos los controladores de vista de sección colocados uno al lado del otro (tenía 5 secciones, de modo que VC tenía 5 veces el ancho de la pantalla). La navegación implicaba deslizar el contenedor VC hacia la izquierda y hacia la derecha. No es el mejor método ya que todos los VCs permanecen en la memoria en todo momento, pero es lo mejor que puedo obtener para lo que necesito. No puedo mostrar ningún fragmento de código desafortunadamente. – skladek
A partir de iOS7, es posible usar 'UIPercentDrivenInteractiveTransition' con una transición de controlador de vista personalizada para lograr este efecto. Básicamente, tendrá un controlador de navegación con una animación personalizada push/pop para hacer el deslizamiento. UIPercentDrivenInteractiveTransition permitirá la transición para rastrear como una panorámica en lugar de deslizar. – skladek