objective animatedimage ios uiimageview

ios - animatedimage - objective c uiimage



¿Cómo puedo cambiar la imagen mostrada en un UIImageView programmatically? (14)

Tengo un IBOutlet para UIImageView , pero cuando miro el documento UIImageView , no veo ninguna pista sobre cómo cambiarlo programáticamente. ¿Debo obtener un objeto UIImage de ese UIImageView ?


Ejemplo en 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")!)!) } }


Esta pregunta ya tenía muchas respuestas. Lamentablemente, ninguno funcionó para mí. Entonces, para completar completé lo que me ayudó:

Tenía varias imágenes con el mismo nombre, así que las ordené 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 el método incorrecto.

En cambio, ahora uso imageWithContentsOfFile: así:

self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];

No sé, si alguien lee tan lejos?

Si es así y este te ayudó: por favor vota. ;-)


Esto funcionó para mí

[ImageViewName setImage:[UIImage imageNamed: @"ImageName.png"]];

Asegúrese de que ImageView esté declarado correctamente en el archivo .h y esté vinculado con el elemento IB.


Mi problema fue que intenté cambiar la imagen en otro hilo. Me gustó esto:

- (void)changeImage { backgroundImage.image = [UIImage imageNamed:@"img.png"]; }

Llamar con:

[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];


No olvides llamar a sizeToFit() después de cambiar la imagen si luego usas el tamaño de UIImageView para configurar UIScrollView contentSize y / o calcular la escala de zoom

let image = UIImage(named: "testImage") imageView.image = image imageView.sizeToFit() scrollView.contentSize = imageView.bounds.size


Para el propósito de las personas que pueden buscar en Google esto para tratar de 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 establecer 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 tu .m:

@implementation YOURCONTROLLERNAME @synthesize imageToDisplay; //etc, rest of code goes here

Desde allí, deberías estar bien usando algo como lo siguiente para configurar tu imagen.

[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];


Para establecer la imagen en su imagen, use la línea de abajo,

self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];


Si desea establecer la imagen en UIImageView programación, no olvide agregar UIImageView como SubView a la vista principal.

Y tampoco te olvides de establecer ImageView Frame .

aquí está el código

UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; myImage.image = [UIImage imageNamed:@"myImage.png"]; [self.view addSubview:myImage];


Si ya tiene un IBOutlet para 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, puede configurar UIImageView:

[imageView setImage:image];

La línea de arriba supone que imageView es su IBOutlet.

¡Eso es! Si quieres ser elegante, puedes agregar la imagen a un UIView y luego agregar transiciones.

PS Memoria de gestión no incluida.


Siguiendo el consejo de Jordan (que debería funcionar en realidad), intente configurar el UIImageView para que sea visible:

[imageView setHidden: NO];

y también, no olvide adjuntarlo a la UIView principal:

[mainView addSubview: imageView];

y traer al frente:

[mainView bringSubviewToFront: imageView];

La esperanza de combinar todos estos pasos te ayudará a resolver el misterio.


Tenga en cuenta que el archivo NIB no conecta todos los IBOutlets 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.

Entonces, si mi controlador de vista de prueba tiene un "imageView" cableado por un plumín, probablemente esto no funcione:

testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"]; [self.view addSubview:testCardViewController.view];

Pero esto hará:

[self.view addSubview:testCardViewController.view]; testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];


UIColor * background = [[UIColor alloc] initWithPatternImage: [UIImage imageNamed:@"anImage.png"]]; self.view.backgroundColor = background; [background release];


imageView.image = [UIImage imageNamed:@"myImage.png"];


myUIImageview.image = UIImage (named:"myImage.png")