2011-05-02 23 views
5

En mi aplicación para iPad que actualmente tienen un png imagen de fondo de 1024x1024 píxeles y la colocaron utilizando la siguienteUIImageView imagen de fondo y rotación Ayuda

UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background-image"]]; 
[self.view addSubview:imgView]; 
[self.view sendSubviewToBack:imgView]; 
[imgView release]; 

Esto se suma la multa UIImageView y la vista se centra en el paisaje sin embargo, está descentrado en el retrato.

He jugado con algunos de los ajustes de contentMode pero no he tenido suerte, o bien obtengo el retrato como centro o el paisaje como centro pero no como ambos.

Podría alguien ayudarme por favor con el UIImageView centrado en el retrato y el paisaje después de la rotación.

Gracias de antemano Matt

Respuesta

14

Es necesario que ajuste la contentMode, la frame y una máscara de tamaño automático apropiado:

UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background-image"]]; 
imgView.frame = self.view.bounds; 
imgView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
imgView.contentMode = UIViewContentModeScaleAspectFill; 
[self.view addSubview:imgView]; 
[self.view sendSubviewToBack:imgView]; 
[imgView release]; 
+0

Perfecto ... No puedo creer Perdí el autoresizingMask, estaba intentando aplicar UIViewAutoresizingFlexibleWidth a contentMode. Esto me ha estado volviendo loco durante el último día más o menos. ¿Cuál es la mejor práctica para mostrar este UIImageView detrás de todas las vistas en mi aplicación? Actualmente tengo todo view backgroundColor configurado para clearColor y he puesto el código anterior en mi viewWillAppear en el controlador Nav. Muchas gracias omz –

+0

agregue la vista de la imagen a la ventana principal y haga que todos los controladores sean transparentes. pero el autosizing no funcionará para esto. necesita rotar manualmente la ventana –

+0

@rahul ¿tiene algún ejemplo de código sobre cómo hacer la rotación manual de la ventana? ¿Esto se considera una mejor práctica que lo que he hecho? ya que el controlador Nav siempre estará disponible y se encarga de la rotación. –

3

comprobar la propiedad autoresizingMask para la imageView.

+0

Gracias 7kv7, omz dio una respuesta un poco más detallada y ejemplo de código pero muchas gracias por la respuesta. AumentaizingMask fue la clave. –

+0

@Matt Sure thing. Feliz codificación :) – visakh7

+1

@ 7KV7: +1 por una buena respuesta :) –