Realmente depende de lo que está planeando.
Si mira la aplicación Configuración de Apple, puede ver que usan vistas de tabla para el diseño, con celdas personalizadas para la mayoría de las filas. Con eso, puedes permitir que una interfaz simple gire a un precio muy económico simplemente rellenando el ancho de las celdas. Esto incluso se aplica a cosas como Correo, donde hay celdas de texto de edición en cada fila. Y las tablas pueden ser transparentes, con solo botones o etiquetas visibles, para que no se vean como tablas.
Puede obtener un montón de kilometraje de la autenticación automática de cada UIView. Si tiene uno o más elementos que pueden tener una altura flexible, generalmente puede obtener un diseño de interfaz que se ve bien en cualquier orientación. Dependiendo de cómo se ve, a veces puedes simplemente fijar todo en la parte superior.
En casos excepcionales, si todos los elementos de la interfaz encajan en un cuadrado, puede simplemente rotarlos en su lugar.
Hay dos momentos en los que debe manejar explícitamente los cambios de orientación. Uno de ellos es cuando una vista se mueve de lado a lado por debajo de otro en rotación. La otra es cuando tiene diferentes imágenes para cada orientación, por ejemplo, si siempre quiere tener el ancho completo.
A veces hay formas de evitar ambos. Puede usar imágenes elásticas o limitarse a una vista por línea. O puede bloquear la orientación de ciertas vistas.
Si debe cambiar el diseño de las vistas, existe un método explícito de layoutSubviews.Deberías tratar de manejar todo tu diseño condicional en este único método. Solo se invoca cuando cambian los límites de la vista, por ejemplo, en la rotación o si ha dejado espacio para el teclado. Cree una vista personalizada para cada jerarquía de vistas que deba responder a la rotación y diseñe las subvistas desde allí.
sí, esto es algo así como lo que estoy haciendo ahora ... gracias – Mark
el método willRotateToInterface para mí nunca se está llamando. ¿Tienes que conectar algo o agregar un oyente en IB o algo así? –
este es un gran ejemplo que estaba buscando. algún ejemplo alternativo? –