2012-06-07 11 views
26

¿Cómo puedo establecer la imagen en el objeto UIImage? Por ejemplo:Cómo establecer la imagen en UIImage

UIImage *img = [[UIImage alloc] init]; 
[img setImage:[UIImage imageNamed:@"anyImageName"]]; 

Mi objetivo UIImage se declara en .h archivo y asigna en init método, tengo que configurar la imagen en viewDidLoad método. Alguna idea?

+3

UIImage * img = [UIImage imageNamed @ "anyImageName"]; –

+1

puedes ** declarar ** algo en las interfaces (lo que llamas archivo .h), pero no crearlo allí. El objeto – vikingosegundo

Respuesta

44
UIImage *img = [UIImage imageNamed:@"anyImageName"]; 

imageNamed:
devuelve el objeto imagen asociada con el nombre de archivo especificado.

+ (UIImage *)imageNamed:(NSString *)name 

Parámetros
nombre
El nombre del archivo. Si esta es la primera vez que se carga la imagen, el método busca una imagen con el nombre especificado en el paquete principal de la aplicación .
Valor de retorno
El objeto de imagen para el archivo especificado, o nulo si el método no pudo encontrar la imagen especificada.

Discusión
Este método se ve en las memorias caché del sistema para un objeto de imagen con el nombre y las devoluciones que se oponen si existe especificado. Si un objeto de imagen correspondiente a no está ya en la memoria caché, este método carga los datos de la imagen del archivo especificado, lo almacena en la memoria caché y luego devuelve el objeto resultante .

+0

se crea en el archivo .h y se asigna en el método init. Necesito establecer la imagen en el método viewDidLoad. – Shamsiddin

+1

para crear una propiedad y asignársela – vikingosegundo

+0

no, pero si desea conocer las propiedades, debe hacer una nueva pregunta y no tratar de tratarla en los comentarios a una respuesta a una pregunta sobre cómo crear un UIImage con un archivo de imagen. – vikingosegundo

1

Hay un error en esta línea:

[img setImage:[UIImage [email protected]"anyImageName"]]; 

que debe ser:

[img setImage:[UIImage imageNamed:@"anyImageName"]]; 
+3

Está mal. porque un UIImage no tiene ningún método como setImage:. – BHASKAR

+0

en este código correcto, pero un error también resolver Mr.jeremy ..Gracias señor, comparta su conocimiento –

0

pueden ser:

UIImage *img = [[UIImage alloc] init]; 

y cuando se quiere cambiar th e imagen:

img = [UIImage imageNamed:@"nameOfPng.png"]; 

pero el objeto no estaba en el mismo lugar en la memoria, pero si se utiliza el puntero, el puntero del mismo serán punto a la última imagen cargada.

+1

y esto es pérdida de memoria de llamada :) – Shamsiddin

+0

Sí, claro, pero antes de que se reasignara la nueva imagen, usted hizo un [img liberado]. No lo puse aquí, porque es la base de Objective-C ... –

+0

, incluso en "retroceso no publicado" de ARC generará un error de selector no encontrado. – vikingosegundo

0

Como dijo vikingosgundo, pero tenga en cuenta que si usa [UIImage imageNamed:image], la imagen se almacena en caché y se come la memoria. Por lo tanto, a menos que planee utilizar la misma imagen en muchos lugares, debe cargar la imagen con imageWithContentsOfFile: y imageWithData:

Esto le ahorrará una gran cantidad de memoria y agilizará su aplicación.

9

Crear un UIImageView y añadir UIImage a ella:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image Name"]] ; 

A continuación, agregarlo a la vista:

[self.view addSubView: imageView]; 
0

Primera declarar UIImageView y darle marco

UIImageView *imageView = [[UIImageView alloc] initWithFrame: CGRectMake(10.0f, 15.0f, 40.0f,40.0f)]; 
     [imageView setBackgroundColor: [UIColor clearColor]]; 
     [imageView setImage:[UIImage imageNamed:@"comments_profile_image.png"]]; 
     [self.view addSubview: imageView]; 
0

Puede establecer una imagen en el objeto de UIImage eiter de la siguiente manera:

  1. UIImage *imageObject = [UIImage imageNamed:@"imageFileName"]; pero inicializando UIImage objeto de este tipo, la imagen siempre se almacena en la memoria caché, incluso lo haces nil como imageObject=nil;

Su mejor seguir esto:

  1. NSString *imageFilePath = [[NSBundle mainBundle] pathForResource:@"imageFilename" ofType:@"imageFile_Extension"];

    UIImage *imageObject = [UIImage imageWithContentsOfFile:imageFilePath]; 
    

Ejemplo: NSString *imageFilePath = [[NSBundle mainBundle] pathForResource:@"abc" ofType:@"png"];

UIImage *imageObject = [UIImage imageWithContentsOfFile:imageFilePath]; 
0

acaba de cambiar esta línea

[img setImage:[UIImage imageNamed:@"anyImageName"]]; 

siguiente línea con

img = [UIImage imageNamed:@"anyImageName"]; 
0

No se puede Alloc UIImage, esto es imposible. código apropiado con UIImageView asignar: Imagen

UIImageView *_image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"something.png"]] ; 

Draw:

CGContextDrawImage(context, rect, _image.image.CGImage); 
0

probar este código para que funcione al 100% ....

UIImageView * imageview = [[UIImageView alloc] initWithFrame:CGRectMake(20,100, 80, 80)]; 
imageview.image = [UIImage imageNamed:@"myimage.jpg"]; 
[self.view addSubview:imageview]; 
1

solo sigue este

UIImageView *imgview = [[UIImageView alloc]initWithFrame:CGRectMake(10, 10, 300, 400)]; 
[imgview setImage:[UIImage imageNamed:@"YourImageName"]]; 
[imgview setContentMode:UIViewContentModeScaleAspectFit]; 
[self.view addSubview:imgview]; 
Cuestiones relacionadas