Tengo un UIImageView y el objetivo es reducirlo proporcionalmente dándole altura o ancho.
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
//Add image view
[self.view addSubview:imageView];
//set contentMode to scale aspect to fit
imageView.contentMode = UIViewContentModeScaleAspectFit;
//change width of frame
CGRect frame = imageView.frame;
frame.size.width = 100;
imageView.frame = frame;
La imagen se redimensionó pero la posición no está en la esquina superior izquierda. ¿Cuál es el mejor enfoque para escalar image / imageView y cómo corrijo la posición?
objective-c
cocoa-touch
Ronnie Liew
fuente
fuente
Respuestas:
Solucionado fácilmente, una vez que encontré la documentación!
fuente
ScaleAspectFit
ahora es unenum UIViewContentMode
, así que debería configurarloimageView.contentMode = UIViewContentMode.ScaleAspectFit
. Tenga en cuenta el período.translatesAutoresizingMaskIntoConstraints
no debe ser ajustado afalse
. Me tomó mucho tiempo antes de darme cuenta de que esta propiedad está impidiendo el cambio de tamañoHe visto un poco de conversación sobre los tipos de escala, así que decidí armar un artículo sobre algunos de los tipos de escala de modo de contenido más populares .
La imagen asociada está aquí:
fuente
Acabo de probar esto y UIImage no es compatible con _imageScaledToSize.
Terminé agregando un método a UIImage usando una categoría, una sugerencia que encontré en los foros de Apple Dev.
En un proyecto .h -
Implementación:
fuente
UIGraphicsBeginImageContext(targetSize);
hacerlo si([UIScreen instancesRespondToSelector:@selector(scale)]) { UIGraphicsBeginImageContextWithOptions(targetSize, NO, 0.0f); } else { UIGraphicsBeginImageContext(targetSize); }
es compatible con pantallas de retina sin hacerlo borrosofuente
Podrías intentar hacer que el
imageView
tamaño coincida con elimage
. El siguiente código no se prueba.fuente
uno puede cambiar el tamaño de un UIImage de esta manera
fuente
El código original publicado en la parte superior funcionó bien para mí en iOS 4.2.
Descubrí que crear un CGRect y especificar todos los valores superior, izquierdo, ancho y alto era la forma más fácil de ajustar la posición en mi caso, que estaba usando un UIImageView dentro de una celda de la tabla. (Todavía es necesario agregar código para liberar objetos)
fuente
Configure su ImageView seleccionando Modo en
Aspect Fill
y marque laClip Subviews
casilla.fuente
Esto funciona bien para mí Swift 2.x:
fuente
Establezca su
UIimageview
por escala .........fuente
Para Swift:
fuente
UIImageView + Scale.h:
UIImageView + Scale.m:
fuente
Usé el siguiente código. Donde imageCoverView es UIView contiene UIImageView
fuente
Si las soluciones propuestas aquí no funcionan para usted, y su recurso de imagen es en realidad un PDF, tenga en cuenta que XCode realmente trata los PDF de manera diferente a los archivos de imagen. En particular, no parece capaz de escalar para rellenar correctamente con un PDF: en su lugar, termina en mosaico. Esto me volvió loco hasta que descubrí que el problema era el formato PDF. Convierte a JPG y deberías estar listo.
fuente
Por lo general, uso este método para mis aplicaciones ( compatible con Swift 2.x ):
fuente
Creo que puedes hacer algo como
fuente
Aquí es cómo puedes escalarlo fácilmente.
Esto funciona en 2.x con el simulador y el iPhone.
fuente