2012-02-25 12 views
5

he estado tratando con este problema al trabajar alrededor de ella durante bastante tiempo, pero realmente les gustaría saber la forma correcta de manejar la situación:UIImages creados a partir de NSData no cumplir UIViewContentMode

Si consigo una imagen como NSData de CoreData así:

NSData *myImageData = myEntity.Image; 
cell.imageView.image = [UIImage imageWithData:myImageData]; 
[cell.imageView setContentMode:UIViewContentModeScaleAspectFit]; 

Si la imagen es mayor que CGRect del UIImageView, la imagen no limitan a la propia CGRect del UIImageView.

Lo que actualmente hago para evitar el problema utilizando código que es algo así como:

CGSize size = CGSizeMake(98, 98); 
UIGraphicsBeginImageContext(size); 
[image drawInRect:CGRectMake(0, 0, size.width, size.height)]; 
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

cell.imageView.image = scaledImage; 

que trabaja, pero ciertamente me gustaría que alguien me diga lo que estoy haciendo mal con el enfoque ContentMode ya que se supone que funciona

Gracias por tomarse el tiempo para leer mi pregunta.

+0

No estoy seguro si esto tiene algún impacto en el escenario, pero estoy tratando de hacer esto desde una UITableViewCell –

+0

¿Pudo resolverlo? –

Respuesta

0

Debe llamar al [cell.imageView setNeedsDisplay] después de establecer el modo de contenido o mover la llamada al setContentMode antes de establecer el valor cell.imageView.image.

+1

Intenté ambos ... sin suerte. –

+1

Entonces sospecho que está sucediendo más con su código de lo que publicó, es decir, es un problema más amplio. Puede intentar proponer más código. – kamprath

+0

Agradezco los comentarios. He escrito un ejemplo independiente para intentar recrear el problema. He descubierto que el problema puede estar relacionado con la imagen en sí. Todavía estoy trabajando para recrear el problema, pero parece que la imagen funciona en algunos casos y no en otros. –