2010-04-15 44 views

Respuesta

47

Code found here

lanzamiento en modo horizontal

aplicaciones en el iPhone OS normalmente lanzamiento en modo de retrato para que coincida con la orientación de la pantalla de Inicio. Si tiene una aplicación que se ejecuta en ambos modos vertical y horizontal, su aplicación siempre debe lanzar en modo vertical al principio y luego dejar que sus controladores de vista rotar la interfaz como sea necesario basándose en la orientación del dispositivo . Sin embargo, si su aplicación se ejecuta en modo horizontal , debe realizar los pasos siguientes para que se inicie inicialmente en una orientación horizontal .

  • En Info.plist archivo de la aplicación, agregue la clave UIInterfaceOrientation
    y establezca su valor en el modo horizontal
    . Para paisaje
    orientaciones, se puede establecer el valor
    de esta tecla para
    UIInterfaceOrientationLandscapeLeft
    o
    UIInterfaceOrientationLandscapeRight.

  • Presente a sus puntos de vista en el modo horizontal y asegúrese de que sus opciones de tamaño automático se establecen correctamente .

  • reemplazar el método de su controlador de vista shouldAutorotateToInterfaceOrientation: y volver SÍ sólo para la orientación horizontal deseada
    y NO
    para la orientación vertical.

+0

Gracias. Es realmente útil. – Tirth

+0

Olvídese siempre de que shouldAutorotateToInterfaceOrientation paso, sin eso toda su UI aparece de lado ... –

10

editar el plist con sólo el paisaje de apoyo, a continuación, asegúrese de que en cada UIViewController/UITabBar etc., en el shouldAutoRotateToInterfaceOrientation, la return dice return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));.

+3

O mejor aún: if (UIInterfaceOrientationIsLandscape (interfaceOrientation)) {return YES; } devuelve NO; – Sangraal

+5

O incluso más corto: return (UIInterfaceOrientationIsLandscape (interfaceOrientation)) –

+0

Aún más corto sin paréntesis :-) –

26

También puedes, simplemente acortar todo a

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    return UIInterfaceOrientationIsLandscape(interfaceOrientation); 
} 
+0

+1 para solución corta y dulce. –

29

Para hacer que su aplicación modo horizontal única, se debe utilizar "Apoyado Orientaciones interface". (Targets -> YourApp -> Supported Interface Orientations -> Landscape Left & Right)

Supported Interface Orientations

También debe establecer la orientación de la aplicación en Info.plist de archivos de su aplicación (Info.plist file) añadiendo la clave Supported interface orientations con los valores Landscape (left home button) y Landscape (right home button). row's

Puede usar willRotateToInterfaceOrientation y/o didRotateFromInterfaceOrientation para manejar los cambios de orientación.


shouldAutorotateToInterfaceOrientation es obsoleto de iOS 6 y por fuera.

Volviendo UIDeviceOrientationLandscapeLeft/Right para shouldAutorotateToInterfaceOrientation debe hacer su aplicación "paisaje":

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

También pueden también cambiar de su aplicación Info.plist y View Orientation (como se ha explicado anteriormente).


Además, recomiendo cambiar la orientación de la vista para Landscape en el Atributos inspector. landscape

+1

Esto no existía en aquel entonces, pero es bueno saber acerca de las opciones más nuevas –

Cuestiones relacionadas