Modo Paisaje SOLAMENTE para iPhone o iPad

Quiero crear una aplicación que no use el modo Retrato.

No estoy seguro de si necesito editar el plist o tener un código además del plist

Código encontrado aquí

Lanzamiento en modo paisaje

Las aplicaciones en iPhone OS normalmente se inician en modo vertical para que coincida con la orientación de la pantalla de inicio. Si tiene una aplicación que se ejecuta en modo retrato y paisaje, su aplicación siempre debe iniciarse en modo vertical inicialmente y luego dejar que sus controladores de vista roten la interfaz según sea necesario según la orientación del dispositivo. Sin embargo, si su aplicación se ejecuta en modo horizontal, debe realizar los siguientes pasos para que se inicie en una orientación horizontal inicialmente.

  • En el archivo Info.plist de su aplicación, agregue la UIInterfaceOrientation
    clave y establecer su valor a la
    Modo paisaje. Para el paisaje
    orientaciones, puede establecer el valor
    de esta clave para
    UIInterfaceOrientationLandscapeLeft
    o
    UIInterfaceOrientationLandscapeRight.

  • Coloque sus vistas en modo horizontal y asegúrese de que sus opciones de ajuste automático estén configuradas correctamente.

  • Reemplace el método de la shouldAutorotateToInterfaceOrientation: su controlador de vista shouldAutorotateToInterfaceOrientation: la shouldAutorotateToInterfaceOrientation: y devuelva SÍ solo para el
    orientación horizontal deseada y NO
    para orientaciones de retrato.

Para que su aplicación sea solo un modo horizontal, debe usar “Orientaciones de interfaz compatibles”. ( Targets -> YourApp -> Supported Interface Orientations -> Landscape Left & Right )

Orientaciones de interfaz compatibles

También debe establecer la orientación de la aplicación en el archivo Info.plist su aplicación ( Archivo Info.plist ) al agregar la clave de Supported interface orientations con los valores Landscape (left home button) y Landscape (right home button) . fila

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


shouldAutorotateToInterfaceOrientation está obsoleto desde iOS 6 y out.

Devolver UIDeviceOrientationLandscapeLeft/Right para shouldAutorotateToInterfaceOrientation debe hacer que su aplicación sea “apaisada”:

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

También puede cambiar Info.plist su aplicación y View Orientation (como se explicó anteriormente).


Además, recomiendo cambiar la orientación de su vista a Landscape en el Inspector de Atributos . paisaje

También podría simplemente acortarlo todo a

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

edite el plist para que solo admita landscape, luego asegúrese de que en cada uiviewcontroller / uitabbar etc., en la shouldAutoRotateToInterfaceOrientation , el resultado dice return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight)); .