Contexto: Estoy tratando de realizar una animación personalizada desde un UIViewController.view
normal a un UISplitViewController.view
. La animación debe mostrar de izquierda a derecha.iOS: ¿Animar la orientación incorrecta en rootViewController?
Juego self.window.rootViewController = viewController
donde viewController
es un UIViewController
normal.
Una vez que el golpe del usuario, la siguiente es llamado:
UIView *theWindow = [viewController.view superview];
[viewController.view removeFromSuperview];
[theWindow addSubview:self.splitViewController.view];
CATransition *animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromLeft];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[theWindow layer] addAnimation:animation forKey:@"SwitchToView1"];
Cuando el dispositivo está en un modo de retrato, todo salió perfectamente. Sin embargo, cuando el dispositivo está en el modo horizontal, la animación de transición se realiza como si el dispositivo todavía estuviera en el modo vertical. Por ejemplo: en lugar de entrar por la izquierda, viene desde abajo. La orientación de ambas vistas es completamente correcta. Solo la transición es extraña.
Si gira a horizontal en la otra dirección, se produce la animación de la parte superior? ¿O es desde abajo, independientemente de qué camino pases al modo horizontal? La constante trae la animación desde el lado izquierdo de la capa. Me pregunto si el marco de la capa no está actualizado, entonces, ¿cuál era el lado izquierdo de la capa ahora está en la parte inferior después de la rotación? – jmstone617
Eso es correcto. La animación ignora cualquier cambio de orientación. ¿Alguna sugerencia sobre cómo asegurarse de que la capa se actualice? – Byte
Tengo el mismo problema: la orientación del CALayer simplemente no parece coincidir con su vista. Parece que hay algunos otros mensajes similares al respecto, pero ninguna de las soluciones parece funcionar para mí. Girar la capa 90 grados también rota la vista, por lo que no ayuda. – jonydep