Actualización respuesta de edad, que sólo se menciona el cambio de tamaño máscaras
autoLayout (IOS 6)
En iOS 6, se añadió autolayout, aunque, un poco feo para trabajar con XCode en un guión gráfico/xib. El diseño automático es demasiado grande para explicarlo, pero la esencia de esto es que se trata de un conjunto de reglas entre vistas dentro de la jerarquía. Por lo tanto, puede colocar la posición x de una vista en el borde derecho de una vista principal. Ver las Auto Layout Programming Guide
Máscaras de tamaño automático (IOS 2)
Echa un vistazo a las opciones en el inspector Tamaño:

Esto es el equivalente de hacer
myView.autoresizingMask = UIViewAutoresizingMaskFlexibleTopMargin |
UIViewAutoresizingMaskFlexibleLeftMargin |
UIViewAutoresizingMaskFlexibleWidth |
UIViewAutoresizingMaskFlexibleHeight;
Tenga en cuenta que hay una diferencia entre hacerlo por código y hacerlo a través de IB. Los ajustes de ajuste automático de IB para los bordes funcionan como puntales, seleccionar el más adecuado, por ejemplo, significa, "mi borde derecho ahora está pegado al borde derecho de la supervista".
Por otra parte, el código hace lo contrario, donde tiene que especificar qué fronteras no se pavonean-ed, aka. ellos son flexibles La altura y el ancho funcionan normalmente.
Disposición subvistas (IOS 2, pero trampas para iOS5 +)
Si todo falla, no empezar a hacer la colocación manual por todo el lugar, he estado en esa posición, y que sólo conduce a unmaintanable, código de espagueti, donde tres o más métodos están jugando con las mismas propiedades de vista.
En su lugar, prefieren hacer todo su posicionamiento personalizado en UIView -layoutSubviews
. Se llama a este método según sea necesario cuando se activó setNeedsLayout
; por ejemplo, cuando cambia el ancho de una vista, las subvistas obtienen el evento de subvistas de diseño. También hace que la implementación de interfaces rotativas sea mucho más fácil, ya que se llama a este método para el nuevo ancho, para determinar cómo se verá la animación.
Tenga en cuenta ese diseño subvistas funciona después de Auto Layout máscaras/Auto-cambio de tamaño se han realizado.
Por qué no puedes configurar 'autoresizingMask' apropiadamente a su hijo' UIView'? ¡Después de todo, es una subvista si lo haces el hijo de otra vista! –
Gracias por la respuesta. Lo hice en la subvista: – androidkc
[self setAutoresizingMask: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin]; pero parece que no funciona. – androidkc