2012-09-13 14 views
7

Tengo un UIImageView creado con Storyboard dentro de UIViewController.Escala UIImageView para adaptarse al ancho de pantalla

Estoy tratando de cambiar la escala de la anchura de la imagen para adaptarse a la anchura de la pantalla y cambiar la escala de altura de forma proporcional:

[fImage setImage:[UIImage imageNamed: @"f2345.jpeg"]]; 
[fImage sizeToFit]; 
fImage.contentMode = UIViewContentModeScaleAspectFit; 
CGRect frame = filmImage.frame; 
frame.size.width = [[UIScreen mainScreen] bounds].size.width; 
// Alternative way to do the similar thing - gives the same result in my case 
// frame.size.width = [[UIScreen mainScreen] applicationFrame].size.width; 
fImage.frame = frame; 

A continuación, muestra una imagen que se escala pero encaja en algún otro lugar y hay una espacios en blanco alrededor de mi imagen.

Respuesta

12

Trate de usar este código:

float imgFactor = frame.size.height/frame.size.width; 
frame.size.width = [[UIScreen mainScreen] bounds].size.width; 
frame.size.height = frame.size.width * imgFactor; 
+0

Funciona muy bien, gracias! Aún no entiendo por qué en mi caso obtuve los trabajos provistos, ¿podría explicarlo? – syntagma

+0

el motivo es que está definiendo el marco de su vista; Hacer esto derrotará cualquier autoescaneo que haya configurado en el constructor de interfaz; entonces, si modifica el marco, mejor modifíquelo según lo que desee. Lo que hago es establecer el ancho a su tamaño completo y luego calcular la altura de manera que mantenga intactas las proporciones. – sergio

Cuestiones relacionadas