tomar tiene retrato plus normal modo iluminacion frontal fotos fondo con como camara borroso aparece activar iphone xcode interface-builder storyboard screen-orientation

tiene - iPhone Storyboard: escena diferente para retrato y paisaje



modo retrato iphone 8 plus camara frontal (3)

Cuando agrega un controlador de vista al guión gráfico, viene con una vista. Llama a eso la vista del contenedor. Agregue dos vistas a la vista de contenedor: una vista de retrato y una vista de paisaje. Establezca la dimensión de la vista de retrato y la vista de paisaje de forma adecuada utilizando el inspector de tamaño. Agregue botones, más vistas, etiquetas o lo que sea a las vistas de retrato y paisaje según sea necesario para su aplicación. Luego, cuando la orientación cambia, oculta una vista y muestra la otra.

Si se desplaza un poco hacia abajo en esta página para desarrolladores de Apple , encontrará la sección "Creación de una interfaz horizontal alternativa". El enfoque básico descrito allí es presentar un archivo NIB diferente como una vista modal cuando cambia la orientación. Estoy usando la función Storyboard, así que no tengo NIB. ¿Cómo se carga una "escena" diferente en ese caso?

Además de eso, estoy usando un controlador de barra de pestañas, no quiero mostrar una vista modal. Solo quiero reemplazar la vista vertical actual con una vista horizontal diseñada con el creador de interfaces y mantener mi barra de pestañas. ¿Cuál sería la forma de guión gráfico para lograr la tarea "Crear una interfaz de paisaje alternativa"? Gracias.


Puede configurar un controlador de navegación y una vista principal. Luego puede usar una vista de plantilla para los diseños de retrato y paisaje (2 vistas adicionales).

Deberá configurar los controles en la vista principal y asegurarse de que cada uno tenga una etiqueta única. Su vista principal no se utilizará, en su lugar, copiará los controles a las dos vistas de plantilla y los configurará en función de cómo desea que se vea cada vista. El beneficio de esto es que cada vista conservará su etiqueta, que se convierte en una pieza muy importante de esta implementación.

Al hacer esto, utiliza un enfoque híbrido para escribir algún código de UI y usar Interface Builder. Después de obtener las dos plantillas de configuración, cree un identificador único para cada una. Tendrá que escribir alguna lógica para manejar la vista y sus subvistas. Un método recursivo para devolver una colección de estos en función de la plantilla que elija.

La lógica central en la implementación del controlador de vista raíz tendrá que verificar si es el retrato y, en base a esto, querrá cargar la vista correcta según el identificador.

Experimenta con este concepto y ve si funciona para ti. Los principales beneficios de no usar dos vistas separadas con controles únicos (no el enfoque compartido con las mismas etiquetas) es que mantiene el acceso a sus subvistas originales. Cualquier variable de instancia que defina en su controlador de vista que apunte a un archivo archivado, etiqueta, etc ... continúe haciéndolo independientemente de la vista de plantilla que se use. Esto mantiene el enfoque del modelo, la vista y el controlador, ya que la estructura de datos permanece sin cambios.

Con este enfoque, aún puede maximizar el uso del creador de interfaces y diseñar las plantillas para cada vista, sin dejar de tener la flexibilidad de escribir algún código de UI personalizado si lo desea. Usar solo el generador de interfaces puede ser un poco limitado a veces, y escribir un código personalizado basado en la orientación lo obliga a un poco de trabajo tedioso.

Espero que esto ayude a algunos.


Puedes hacer un archivo xib que contenga 2 uiviews, uno para el retrato y otro para el paisaje. Asigne como propietario del archivo del xib, el mismo controlador de vista de la vista que tiene en el guión gráfico. En viewDidLoad, cargue el archivo xib y agregue la vista apropiada para vertical u horizontal.

Por lo tanto, si tiene un guión gráfico con muchos controladores de vista, puede configurar las dos posibilidades (vista vertical u horizontal) solo en los controles de vista en los que está interesado en cambiar la orientación.

¡Utilicé esta solución y trabajo muy bien!