Como posso alterar programticamente a imagem exibida num UIImageView?

Tenho uma IBOutlet a uma UIImageView, mas quando olho para a UIImageView doc, posso'não vejo nenhuma dica sobre a sua alteração programática. Tenho de ir buscar um objecto "UIImageView" àquele "UIImageView"?

Se já tiver uma IBOutlet para um UIImageView, então tudo o que tem de fazer é agarrar uma imagem e chamar setImage no receptor (UIImageView). Dois exemplos de como agarrar uma imagem estão abaixo. Um da Web, e outro que se adiciona à pasta Recursos em Xcode.

UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];

ou

UIImage *image = [UIImage imageNamed: @"cell.png"];

Uma vez que tenha uma Imagem pode então definir o UIImageView:

[imageView setImage:image];

A linha acima assume que a imageView é a sua IBOutlet.

Isso's it! Se quiseres ficar extravagante podes adicionar a imagem a uma UIView e depois adicionar transições.

P.S. Gestão de memória não incluída.

Comentários (5)

Isto funcionou para mim

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

Certifique-se de que o ImageView é declarado correctamente no ficheiro .h e que está ligado ao elemento IB.

Comentários (0)

Seguindo o conselho de Jordan's (que deve funcionar realmente), tente definir o UIImageView para ser visível:

 [imageView setHidden: NO];

e também - don'não se esqueça de o anexar à UIView principal:

[mainView addSubview: imageView];

e para trazer para a frente:

[mainView bringSubviewToFront: imageView];

A esperança de combinar todos estes passos ajudá-lo-á a resolver o mistério.

Comentários (0)