2012-08-15 7 views
13

Cuando configura una imagen para una uiimageview en el guion gráfico o el constructor de interfaz, conserva la forma del original UIImageView, lo que significa que la imagen está completamente distorsionada.¿Hay alguna manera de auto-dimensionar un UIImageView en Interface Builder/storyboard?

Para que coincida con el tamaño de UIImageView en su imagen, tengo que ingresar manualmente el tamaño desde el inspector de archivos.

¿Hay alguna manera de que UIImageView pueda detectar automáticamente el tamaño nativo de su imagen y ajustar su auto según corresponda?

Respuesta

45

Estoy asumiendo que usted se refiere a la disposición en el guión gráfico/IB. Para obtener el tamaño nativo de la imagen, simplemente seleccione la imagen y presione Comando + = en el teclado. Para volver a clasificarlo proporcionalmente, seleccione la esquina y mantenga presionada la tecla Mayús al volver a clasificar según el tamaño.

+0

¡Gran atajo! ¿Hay alguna forma de configurar la imagen a la mitad de su tamaño original (para @ 2x retina images)? – zakdances

+0

No necesita tener en cuenta la resolución de la retina a menos que esté haciendo algo inusual. iOS reemplazará automáticamente la imagen @ 2x con el tamaño correcto. Solo usa la imagen que no es retina en IB. –

+0

Este es un gran ahorro de tiempo, gracias. –

1

Uso del contentMode

 imageView.contentMode = UIViewContentModeScaleAspectFit; 

Editar: acabo de ver que parece que quiera ajustar el tamaño imageViews a la imagen .... Diferente a continuación

2

¿Por qué no se establece la tamaño de su uiimageview en el código? Esto es lo que hay que hacer ...

//get the Image 
UIImage *img = [UIImage imageNamed:@"img.png"]; 

CGFloat x = img.origin.x; 
CGFloat y = img.origin.y; 
CGFloat width = img.size.width; 
CGFloat height = img.size.height; 
imageView.frame = CGRectMake(x, y, width, height); //imageView is your uiimageview's reference 
+0

¿No hay manera de hacerlo a través de la interfaz Storyboard/IB? – zakdances

+0

No estoy seguro, ya que no tengo mi mac en este momento conmigo. No creo que puedas cambiar el tamaño en IB/Storyboard. Debido a que las conexiones con los puntos de venta no se realizan realmente hasta que se llama al método viewDidLoad, entonces aún verá nil si intenta acceder a la vista de la imagen antes de que se llame a este método. – Humayun

-3

Esto es lo que hice:

imageView.clipsToBounds = YES; 
[imageView setContentMode: UIViewContentModeScaleAspectFit]; 

que está trabajando para mí.

Cuestiones relacionadas