UIDeviceOrientation
se refiere a la orientación física del dispositivo, mientras que UIInterfaceOrientation
se refiere a la orientación de la interfaz de usuario. Cuando se llama a su método de
[self orientationChanged:interfaceOrientation];
es muy probable que pasarlo un UIDeviceOrientation
cuando se debe, de acuerdo con el método, se utiliza un UIInterfaceOrientation
.
Sólo para ampliar sobre este punto un poco, UIDeviceOrientation
es una propiedad de la clase , y hay estos posibles valores:
UIDeviceOrientationUnknown
-
UIDeviceOrientationPortrait
No se puede determinar - botón de Inicio hacia abajo
UIDeviceOrientationPortraitUpsideDown
- botón de inicio hacia arriba
UIDeviceOrientationLandscapeLeft
- botón de inicio frente a la derecha
UIDeviceOrientationLandscapeRight
- botón de inicio frente a la izquierda
UIDeviceOrientationFaceUp
- El dispositivo es plano, con la pantalla hacia arriba
UIDeviceOrientationFaceDown
- El dispositivo es plano, con la pantalla hacia abajo
Como para UIInterfaceOrientation
, es una propiedad de UIApplication
y solo contiene 4 posibilidades que corresponden a la orientación de la barra de estado:
UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight,
UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft
Para obtener UIDeviceOrientation
, se utiliza
[[UIDevice currentDevice] orientation]
y para obtener UIInterfaceOrientation
, se utiliza
[[UIApplication sharedApplication] statusBarOrientation]
olvidaba decir gracias por esto. Entonces ... Gracias –
Acabo de toparme con este problema otra vez y me salvaste de nuevo. Ojalá pudiera votarte dos veces. –