2011-04-20 11 views
5

Tengo un plumín que creé originalmente para una aplicación de iPhone con dimensiones de 320x480 y con máscaras de ajuste automático configuradas para expandir la vista en todas las direcciones en caso de que su supervista fuera grande.¿Cuándo entran en vigencia las máscaras de aumento automático en iOS?

Ahora estoy haciendo que mi aplicación sea universal, y estoy usando la misma punta y mostrándola en una hoja de página en el iPad.

Mi problema es que realizo algunos cálculos basados ​​en el tamaño del marco, que todavía muestra 320x480. Pero en otros métodos, el tamaño del marco se muestra correctamente como el tamaño de la hoja de la página.

Pregunta: ¿Cuándo entran en vigencia las máscaras de realineación para que pueda hacer mis cálculos en el momento correcto?

Respuesta

3

La propiedad autoresizingMask entra en vigor cuando el marco de los cambios que es SuperView. La propiedad de supervisión resizesSubviews debe ser SÍ. Cuando carga su NIB, el marco de la supervista se establece como en el NIB. Puede configurar esto para lo que quiera durante la inicialización.

+1

Estoy presentando la vista de este controlador de vista en una hoja modal de control de página. En * algún * punto, las máscaras de aumento automático surten efecto, lo veo visualmente. Pero en viewDidLoad no veo esos cambios reflejados. Quizás si hiciera esos cálculos iniciales en viewDidAppear en lugar de viewDidLoad, ¿podría funcionar? – Scott

+0

Intenta anular 'layoutSubviews' en su lugar. 'viewDidLoad' solo carga las subvistas, no hace diseño. – XJones

+1

Parece que los cambios tienen efecto en o alrededor del siguiente ciclo de ejecución después de que se ejecuta viewDidLoad. No estoy seguro de los detalles, pero extraje el material de diseño de viewDidload, lo puse en su propio método y ahora puedo llamarlo desde cualquier cantidad de lugares, incluyendo layoutSubviews o viewWillAppear. ¡Gracias! – Scott

0

Ha pasado mucho tiempo desde que hice algo con el desarrollo para iOS, pero recuerdo que importaba cuando giraba las vistas cuando cambiaba la rotación del dispositivo. Por lo tanto, cuando configura un controlador de vista que habilitará todas las orientaciones del dispositivo, establecerá el marco de su vista. Esa vista a su vez establecerá todos los marcos de las subvistas. Mirará la máscara de aumento de tamaño para comprobar cómo tiene que alterar el marco.

No estoy seguro de esto, pero pensé que era algo como esto. Pruébalo y haznos saber!

IEF2

Cuestiones relacionadas