2009-04-01 15 views

Respuesta

182

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.

+1

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

+3

Probablemente no haya conectado IBOutlet a la referencia ViewController en IB. Verifique que la imagen esté en la carpeta de Recursos. – Jordan

+0

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

9

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.

29

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.

16

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]]; 
+0

¡Gracias! Siendo nuevo en xcode e iphones en general, me faltaba el control deslizante antes de la imagen para mostrar. – Opy

37

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"]; 
7

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]; 
+2

Sí, esto me mordió ... otra vez ... También puede usar 'dispatch_async (dispatch_get_main_queue(),^{backgroundImage.image = [UIImage imageNamed: @" img.png "];})' – Dex

2
UIColor * background = [[UIColor alloc] initWithPatternImage: 
    [UIImage imageNamed:@"anImage.png"]]; 

self.view.backgroundColor = background; 
[background release]; 
+0

¿Es esto lo mismo que imagen presente por el fondo de UIView o por la propiedad de imagen de UIImageView? – voromax

7

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]; 
22
imageView.image = [UIImage imageNamed:@"myImage.png"]; 
2

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. ;-)

7

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

} 
4
myUIImageview.image = UIImage (named:"myImage.png") 
+1

marcado como de muy baja calidad. Por favor, mejorarlo. – Drew

+0

Puedes hacerlo expandiéndolo. –

5

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 
0

Para ajustar la imagen en su uso imageView debajo línea de código,

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

copia la imagen en tu proyecto y luego usa el código anterior –

Cuestiones relacionadas