2010-10-22 8 views
20

Tengo dos viewControllers, uno es una subclase de UIViewController (se autocalifica correctamente), el otro es una subclase de una subclase de UIViewController.
Hice un diseño en Interface Builder, probé mi código en el simulador y todo funciona como se esperaba. Pero si giro el dispositivo, mis vistas no cambian de tamaño.
Así que volví a Interface Builder y descubrí que no puedo cambiar la propiedad de modificación de tamaño de "root" -UIView. Así que abrí otro archivo y la propiedad de cambio de tamaño también está arreglada allí. Pero está configurado para cambiar el tamaño en ambas direcciones. Este es el comportamiento que quiero.Configuración de problemas autosizing en el constructor de interfaces

¿Cómo puedo cambiar el aumento de tamaño de la UIView superior para que haga lo que quiero?
No hay tantas subvistas que es imposible comenzar de nuevo desde cero, pero no quiero hacer esto.

Interface Builder, Autoresizing Mask

Respuesta

24

me encontré con esto antes y fue muy frustrante. Resulta que cuando tiene los Elementos simulados de la interfaz de usuario activados, no puede cambiar los puntales y muelles como desee.

Vaya a la pestaña Atributos (Cmd-1) y asegúrese de que la Barra de estado, la Barra superior, la Barra inferior y la Vista dividida estén configuradas como "Sin especificar". Luego regrese a la pestaña Tamaño (Cmd-3) y podrá hacer clic en las líneas y cambiar sus Struts y Springs. Entonces, finalmente, puedes volver al Cmd-1 y volver a activar esos elementos simulados.

+0

Se obtiene una estrella de oro por esto. ¡GRACIAS! – sean808080

+0

'cmd + 1' abre el' Project navigator' !!!!!!!!!!!!!!!!! –

+0

@lulian, Eso es porque Xcode ha cambiado las teclas de método abreviado. En 2011, esto era correcto. –

13

que tienen una respuesta simplificada:

  1. Goto IB
  2. Haga clic en la 'ViewController'
  3. Goto 'Atributos inspector'
  4. Cambio de 'tamaño' de 'forma libre' (algo que no sea 'inferido')

Lo que tienes es lo siguiente:

enter image description here

Cambiar 'tamaño' a 'freeform' & ¡intente ahora!

enter image description here

Ahora, funciona! Vuelva atrás & cámbielo a 'Inferido' después de haber configurado las máscaras Autoresizing.

+0

Excelente, gracias. – Robert

0

abierto Main.storyboard como fuente (no se olvide, es sólo un archivo XML) y vuelva a colocar la etiqueta "autoresizingMask" en la vista con la siguiente línea:

<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 
Cuestiones relacionadas