Utilice el giroscopio para cambiar la orientación de la pantalla de la aplicación cuando la pantalla horizontal esté desactivada en el teléfono.
Requisito previo: Se debe verificar que el proyecto admita pantallas horizontales y verticales.
Cuando el valor absoluto de Z es 1, el suelo es horizontal, y cuando es 0, el suelo es vertical. 0.5 es el error de configuración. Resuelve el problema de que cuando el escritorio está ligeramente inclinado, el teléfono móvil seguirá girando cuando se coloque sobre el escritorio.
- (BOOL)shouldAutorotate;
Establece si se admite la rotación Solo cuando se devuelve YES, se llamarán los dos métodos siguientes.
?- (void)willRotateToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration: (NSTimeInterval)duration;
Método llamado antes de la rotación, toInterfaceOrientation es la dirección de la próxima rotación, que se puede utilizar en este método actualice el diseño de la interfaz de usuario internamente.
- (void)didRotateFromInterfaceOrientation: (UIInterfaceOrientation)fromInterfaceOrientation;
Método llamado después de la rotación, fromInterfaceOrientation es la dirección original. También puede actualizar el diseño de la interfaz de usuario en este método, pero es así. Más recomendado. Utilice el método anterior.
Utilice [[UIDevice currentDevice] setValue: value forKey: @"orientation"]; después de configurar manualmente la orientación, el sistema llamará automáticamente a mustAutorotate
Si el proyecto solo admite vertical; screen O una página de pantalla horizontal, habrá algunos problemas cuando esta página interactúe con una página que pueda admitir pantallas horizontales y verticales. Por ejemplo, la página A solo admite pantalla vertical, mientras que la página B admite pantalla horizontal y vertical. A salta a B, la página B gira horizontalmente y luego regresa a A. En este momento, A se proyecta horizontalmente. Para resolver este problema, la orientación de la pantalla debe establecerse con fuerza en el método viewDidAppear: de la página A.
NSNumber*value = [NSNumbernumberWithInt:UIInterfaceOrientationPortrait];
[[UIDevicecurrentDevice]setValue:valueforKey:@"orientación"];