2011-07-11 13 views
5

Permítanme explicar a qué me refiero cuando digo que también quiero rotar mi subvista. Coloqué muchas imágenes para aclararme. Esto puede parecer mucho pero no lo es. Solo quería ser claro.Hacer girar la subvista también cuando se gira el dispositivo iPhone/iPad

En el archivo de punta en el que estoy trabajando actualmente, tengo un botón y UIView.

enter image description here

El UIView que he creado en el constructor de interfaz está conectado con el IBOutlet llamado ViewMain:

enter image description here

y el botón ejecuta el siguiente método: enter image description here

y qué ese método lo hace es que coloca la vista desde otro archivo nib en el controlador UIView que creé en la interfaz builde r. El archivo semilla que en realidad estoy poniendo es:

enter image description here

simplemente coloqué controles al azar para ilustrar mejor mi punto.

así que todo lo que va es grande (la vista desde anotherViewController aparece en ViewMain cuando el usuario presiona el botón)

enter image description here

enter image description here

todo se ve muy bien, pero nota de lo que sucede cuando rotan Mi dispositivo:

enter image description here

Me gustaría que mi subvista (otra ViewController.view) también lo haga. No me importa si es más grande que ViewMain porque puedo tener un fondo transparente. Solo necesito rotarlo también. ¿Cómo puedo hacer eso?

+0

usted quiere que gire? ¿O desea que la vista cambie su dimensión para que coincida con el nuevo tamaño? –

+0

para que coincida con las dimensiones de la vista exterior/raíz ... Lo mismo que sucede cuando gira una UIView que no tiene subvistas. Quiero que se comporte como la vista que tiene un fondo blanco. Y redimensionarlo puede ser una solución. Aunque no sé cómo hacer eso ... –

+1

la razón por la que esto no está girando es porque es viewController no está en la jerarquía del controlador de vista, por lo que no recibe notificaciones de rotación. Está cubierto en la sesión 102 o 104 de wwdc si tiene acceso a los videos (http://developer.apple.com/videos/wwdc/2011/) – MCannon

Respuesta

3

Definir shouldAutorotateToInterfaceOrientation: en que UIViewController de modo que siempre devuelve SÍ:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return YES; 
} 

Look here para más detalles.

También debe tener cuidado de definir correctamente el comportamiento de ajuste automático de su vista y sus subvistas, para que todo esté bien cuando se autorretrata.

EDIT:

para establecer la propiedad autoresize para una vista en Interface Builder, seleccione la vista y luego ir al panel "Tamaño de vista" en la ventana de información y ajuste "autosizing", como en la imagen de abajo.

enter image description here

+0

Ese método está ahí por defecto y todavía no gira ... Además, ese método está en todos mis archivos .m. Tal vez tenga que llamar a ese método desde la vista raíz cuando ejecute el código desde el botón. –

+0

¿Podría agregar una imagen más con el diseño que desea obtener? – sergio

+0

No lo sé todavía porque estoy planeando agregar varias vistas dependiendo de qué botón presione el usuario. Pero lo último que dices suena como una gran idea. tal vez solo tengo que volver a dimensionarlo según las dimensiones de la vista de raíz, la que tiene blanco en la última imagen que publiqué en sergio ... –

Cuestiones relacionadas