2010-06-08 13 views
7

Tengo un UIImageView cuyo marco, configurado antes de cargar la imagen, siempre es demasiado grande para la imagen, por lo que cuando intento redondear las esquinas, por ejemplo, no pasa nada.¿Cómo cambiar el tamaño de un UIImageView para que se ajuste a la imagen subyacente sin moverla?

¿Cómo puedo cambiar el tamaño del marco para que tenga el mismo tamaño que la imagen subyacente, al mismo tiempo que se garantiza que el punto central del UIImageView no cambie?

Respuesta

12

Si cambia los límites de un UIView el centro no va a cambiar.

CGRect bounds; 

bounds.origin = CGPointZero; 
bounds.size = newImage.size; 

imageView.bounds = bounds; 
imageView.image = newImage; 
+0

Voy a intentar esto esta noche, sin embargo, tiene mucho sentido solo mirarlo. –

+1

No funciona al menos en iOS 9+, Xcode 7+. –

+0

Estoy de acuerdo con @Ezekiel ... no funciona en iOS 9 –

2

probar algo a lo largo de las siguientes líneas .. no probados

CGSize imageSize = image.Size; 
CGPoint oldCenter = imageView.center; 

// now do some calculations to calculate the new frame size 
CGRect rect = CGRectMake(0, 0, imageSize.width, imageSize.height); 
imageView.frame = rect; 
imageView.center = oldCenter; 
Cuestiones relacionadas