es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

iOS. Orientación de la interfaz al inicio.

Tengo una aplicación que admite tanto el modo retrato como el modo paisaje.
Entonces en Info.plist / Configuración del proyecto, especifico ambas orientaciones.

En mi UIViewController anulo supportedInterfaceOrientations para devolver .landscape.

Pero cuando inicio mi aplicación, primero se muestra en modo retrato (con un diseño dañado) y luego una animación desagradable lo gira a modo paisaje (ver video).

También intenté anular application(_, supportedInterfaceOrientationsFor window) con el mismo resultado.

Proyecto de muestra que muestra el problema:
https://s3.amazonaws.com/glazba/OrientationTest.zip

Video del problema de orientación:
Orientation issue video

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que puede haber un problema con la orientación de inicio de la aplicación. Una solución podría ser anular el método preferredInterfaceOrientationForPresentation en el controlador de vista para asegurarse de que se inicie en la orientación deseada. Por ejemplo:

    override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
        return .landscapeRight // o .landscapeLeft, dependiendo de la orientación deseada
    }
    

    Además, se puede utilizar el método viewWillLayoutSubviews para actualizar el diseño de la vista cuando cambia la orientación. Por ejemplo:

    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        // actualizar el diseño de la vista aquí
    }
    

    También es importante asegurarse de configurar correctamente las restricciones de auto-layout para manejar tanto las orientaciones de retrato como de paisaje.

Comments are closed.