Pregunta

Tengo una aplicación de barra de pestaña con un controlador de navegación en una pestaña.

Quiero presionar un nuevo controlador de vista, pero hacer que se anime desde la izquierda.

Lo que tengo es esto:

CATransition *transition = [CATransition animation];
transition.duration = 0.8;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
transition.delegate = self;        

controller.hidesBottomBarWhenPushed = YES;
[self.navigationController.view.layer addAnimation:transition forKey:nil];
[self.navigationController pushViewController:controller animated:YES];

Todo empuja desde la izquierda, excepto la barra de pestaña, que siempre se desliza hacia la izquierda (y la transición. Duración tampoco tiene ningún efecto en eso).

¿Hay alguna manera de hacer que el tabar se deslice en la misma dirección y velocidad con el resto de la vista?

(También he intentado usar PushModalViewController, pero eso tiene varios problemas gráficos).

¿Fue útil?

Solución

Me parece que estás tratando de animar solo self.navigationController en tu código; Dado que el Uitabbar está fuera de él, parece razonable que no se anime como quiera (creo que se anima solo como efecto posterior a animar la visión interna, pero no tiene control en él).

Lo que intentaría hacer es acceder a su UITabBarController's view y agregue una animación a su CALayer Además (o exclusivamente a eso, puede probar diferentes posibilidades).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top