Tengo un IBOutlet
en un UIImageView
, pero cuando miro el documento UIImageView
, no veo ninguna pista sobre cómo modificarlo programáticamente. ¿Debo obtener un objeto UIImage
de ese UIImageView
?¿Cómo puedo cambiar la imagen mostrada en un UIImageView programáticamente?
Respuesta
Si ya tiene una IBOutlet a UIImageView, entonces todo lo que tiene que hacer es tomar una imagen y llamar a setImage en el receptor (UIImageView). Dos ejemplos de agarrar una imagen están debajo. Uno de la Web y uno que agregue a su carpeta de Recursos en Xcode.
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];
o
UIImage *image = [UIImage imageNamed: @"cell.png"];
Una vez que tenga una imagen se pueden establecer UIImageView:
[imageView setImage:image];
La línea anterior supone imageView es su IBOutlet.
Eso es todo! Si quieres ser elegante, puedes agregar la imagen a un UIView y luego agregar transiciones.
P.S. Manejo de memoria no incluido.
Siguiendo el consejo de Jordan (que deberían funcionar en realidad), tratar de establecer el UIImageView a ser visible:
[imageView setHidden: NO];
y también - no se olvide de adjuntar a la UIView principal:
[mainView addSubview: imageView];
y traer al frente:
[mainView bringSubviewToFront: imageView];
esperanza combinar todos estos pasos le ayudará a Solv e el misterio.
Esto funcionó para mí
[ImageViewName setImage:[UIImage imageNamed: @"ImageName.png"]];
asegurarse de que el ImageView se declara correctamente en el archivo .h y está vinculada con el elemento de IB.
Para que las personas que lo están buscando en Google intenten resolver su problema, recuerde declarar correctamente la propiedad en su archivo de encabezado y sintetizar el UIImageView en su archivo de implementación ... Será difícil establecerlo la imagen mediante programación sin métodos getter y setter.
#import <UIKit/UIKit.h>
@interface YOURCONTROLLERNAME : UIViewController {
IBOutlet UIImageView *imageToDisplay;
}
@property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay;
@end
y luego en su .m:
@implementation YOURCONTROLLERNAME
@synthesize imageToDisplay;
//etc, rest of code goes here
De allí que debe estar bien usar algo como lo siguiente para configurar su imagen.
[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];
¡Gracias! Siendo nuevo en xcode e iphones en general, me faltaba el control deslizante antes de la imagen para mostrar. – Opy
Tenga en cuenta que el archivo NIB no conecta todas las IBOutlet hasta que la vista se haya agregado a la escena. Si está conectando cosas manualmente (lo que podría estar haciendo si las cosas están en NIB por separado), esto es importante tenerlo en cuenta.
Así que si mi controlador de vista de prueba tiene un "imageView" conectado por una punta, esto probablemente no funcionará:
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
[self.view addSubview:testCardViewController.view];
pero esto:
[self.view addSubview:testCardViewController.view];
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
Mi problema era que yo intenté cambiar la imagen en otro hilo. Lo hice así:
- (void)changeImage {
backgroundImage.image = [UIImage imageNamed:@"img.png"];
}
llamada con:
[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];
Sí, esto me mordió ... otra vez ... También puede usar 'dispatch_async (dispatch_get_main_queue(),^{backgroundImage.image = [UIImage imageNamed: @" img.png "];})' – Dex
UIColor * background = [[UIColor alloc] initWithPatternImage:
[UIImage imageNamed:@"anImage.png"]];
self.view.backgroundColor = background;
[background release];
¿Es esto lo mismo que imagen presente por el fondo de UIView o por la propiedad de imagen de UIImageView? – voromax
Si desea ajustar la imagen a continuación, mediante programación UIImageView
No se olvide de añadir UIImageView
como subvista a la vista principal.
Y también no olvides configurar ImageView Frame.
Este es el código
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
myImage.image = [UIImage imageNamed:@"myImage.png"];
[self.view addSubview:myImage];
imageView.image = [UIImage imageNamed:@"myImage.png"];
Esta pregunta ya tenía un montón de respuestas. Lamentablemente, ninguno funcionó para mí. Entonces, para completar, agregué lo que me ayudó:
Tenía varias imágenes con el mismo nombre, así que las pedí en subcarpetas. Y tenía la ruta completa al archivo de imagen que quería mostrar. Con una ruta completa imageNamed:
(como se usa en todas las soluciones anteriores) no funcionó y fue un método incorrecto.
En cambio ahora uso imageWithContentsOfFile:
así:
self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
No sabe, si alguien lee tan lejos?
Si es así y éste lo ayudó: vote por favor. ;-)
Ejemplo de Swift:
import UIKit
class ViewController: UIViewController {
@IBOutlet var myUIImageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func myAction(sender: UIButton) {
let newImg: UIImage? = UIImage(named: "profile-picture-name")
self.myUIImageView.image = newImg
}
@IBAction func myAction2(sender: UIButton) {
self.myUIImageView.image = nil
self.myUIImageView.image = UIImage(data: NSData(contentsOfURL: NSURL(string: "http://url/image.png")!)!)
}
}
myUIImageview.image = UIImage (named:"myImage.png")
marcado como de muy baja calidad. Por favor, mejorarlo. – Drew
Puedes hacerlo expandiéndolo. –
No se olvide de llamar sizeToFit()
después de cambiar imagen si a continuación, utiliza el tamaño de UIImageView para establecer UIScrollView contentSize y/o de cómputo relación de zoom
let image = UIImage(named: "testImage")
imageView.image = image
imageView.sizeToFit()
scrollView.contentSize = imageView.bounds.size
Para ajustar la imagen en su uso imageView debajo línea de código,
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];
copia la imagen en tu proyecto y luego usa el código anterior –
- 1. ¿Cómo puedo agregar programáticamente un UIImage a un UIImageView y agregar ese UIImageView a otro UIView?
- 2. Cocoa Touch - ¿Agregar un UIImageView programáticamente?
- 3. ¿Cómo puedo hacer que UIImageView cambie su imagen mediante programación?
- 4. UIImageView: ¿Cambiar el tamaño al tamaño de la imagen?
- 5. ¿Cómo cambiar la imagen mostrada por la lista de aplicaciones recientes?
- 6. Girar imagen en UIImageView
- 7. ¿Cómo desplazo la imagen dentro de UIImageView?
- 8. ¿Cómo obtenemos las coordenadas de un UIImageView programáticamente?
- 9. UIButton Imagen de fondo Cambiar programáticamente
- 10. ¿Cómo puedo voltear un UIImageView?
- 11. UIImageView no Muestra la imagen
- 12. Cómo cambiar la imagen de UIImageView deslizando hacia la derecha o hacia la izquierda desde UIViewController
- 13. UIImageView cambiar el ancho y la altura
- 14. ¿Cómo crear UIImageView con la imagen de un enlace?
- 15. Invertir la imagen mostrada por imshow en matplotlib
- 16. ¿Puedo cambiar config.cache_classes programáticamente en Rails 3?
- 17. ¿Cómo puedo cambiar la imagen de un ImageView?
- 18. ¿Cómo cambiar la pestaña programáticamente?
- 19. Extracción de imagen de UIImageView
- 20. Configurando la imagen de un UIImageView en Interface Builder
- 21. cómo recortar la imagen en pedazos programáticamente
- 22. IOS: cambiar UIImageView con valor de etiqueta
- 23. ¿Es posible cambiar programáticamente la imagen de inicio Default.png?
- 24. cómo puedo detectar el evento táctil de un UIImageView
- 25. ¿Cambiar (no init) un identificador UIBarButtonItem programáticamente?
- 26. Cambiar la zona horaria en Android programáticamente
- 27. Programación de Xcode para iPhone: cargando un archivo jpg en un UIImageView desde la URL
- 28. ¿Cómo se puede "cascada" el patrón de imagen en UIImageView?
- 29. ¿Cómo detener el estiramiento de una imagen dentro de UIImageView?
- 30. ¿Cómo puedo cambiar el estilo de flecha en un JComboBox
gracias, pero no funciona :( eliminé la imagen en el constructor de interfaz por lo que el UIImageView está vacío. luego implementé esto en el método viewDidLoad. Pero nada pasa. El nombre de la imagen es 100% correcto especificado. También lo asigné con setImage a la salida. ¿Algo más que pueda probar? – Thanks
Probablemente no haya conectado IBOutlet a la referencia ViewController en IB. Verifique que la imagen esté en la carpeta de Recursos. – Jordan
No estoy seguro de que el necro gobierne/afecte SO, pero sé que esto me ayudó a resolver mi problema. Estoy usando iOS v5.1, xcode 4.3.2 – Jake