Respostas:
Se você já possui um IBOutlet para um UIImageView, basta capturar uma imagem e chamar setImage no receptor (UIImageView). Dois exemplos de captura de uma imagem estão abaixo. Um da Web e um adicionado à sua pasta Recursos no 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"];
Depois de ter uma imagem, você pode definir o UIImageView:
[imageView setImage:image];
A linha acima assume que o imageView é o seu IBOutlet.
É isso aí! Se você quiser se divertir, pode adicionar a imagem a um UIView e adicionar transições.
Gerenciamento de memória PS não incluído.
Observe que o arquivo NIB não liga todos os IBOutlets até que a visualização seja adicionada à cena. Se você estiver conectando as coisas manualmente (o que você pode fazer se houver NIBs separados), é importante ter isso em mente.
Portanto, se meu controlador de exibição de teste tiver um "imageView" conectado por uma ponta, isso provavelmente não funcionará:
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
[self.view addSubview:testCardViewController.view];
Mas isso irá:
[self.view addSubview:testCardViewController.view];
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
imageView.image = [UIImage imageNamed:@"myImage.png"];
Para o objetivo de pessoas que pesquisam isso no Google para resolver o problema, lembre-se de declarar adequadamente a propriedade no arquivo de cabeçalho e sintetizar o UIImageView no arquivo de implementação ... Será difícil definir a imagem programaticamente sem métodos getter e setter.
#import <UIKit/UIKit.h>
@interface YOURCONTROLLERNAME : UIViewController {
IBOutlet UIImageView *imageToDisplay;
}
@property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay;
@end
e depois no seu .m:
@implementation YOURCONTROLLERNAME
@synthesize imageToDisplay;
//etc, rest of code goes here
A partir daí, você deve usar algo como o seguinte para definir sua imagem.
[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];
Exemplo em 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")!)!)
}
}
Seguindo o conselho de Jordan (que deve funcionar realmente), tente definir o UIImageView como visível:
[imageView setHidden: NO];
e também - não esqueça de anexá-lo ao UIView principal:
[mainView addSubview: imageView];
e trazer para a frente:
[mainView bringSubviewToFront: imageView];
A esperança de combinar todas essas etapas o ajudará a resolver o mistério.
Meu problema foi que tentei alterar a imagem em outro segmento. Eu fiz assim:
- (void)changeImage {
backgroundImage.image = [UIImage imageNamed:@"img.png"];
}
Ligue para:
[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];
dispatch_async(dispatch_get_main_queue(), ^{backgroundImage.image = [UIImage imageNamed:@"img.png"];})
Se você deseja definir a imagem como UIImageView
programaticamente, não esqueça de adicionar UIImageView
como SubView à tela principal.
E também não se esqueça de definir o ImageView Frame .
aqui está o código
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
myImage.image = [UIImage imageNamed:@"myImage.png"];
[self.view addSubview:myImage];
Não se esqueça de ligar sizeToFit()
depois de alterar a imagem, se você usar o tamanho de UIImageView para definir o conteúdo do UIScrollViewSize e / ou calcular a escala de zoom
let image = UIImage(named: "testImage")
imageView.image = image
imageView.sizeToFit()
scrollView.contentSize = imageView.bounds.size
myUIImageview.image = UIImage (named:"myImage.png")
UIColor * background = [[UIColor alloc] initWithPatternImage:
[UIImage imageNamed:@"anImage.png"]];
self.view.backgroundColor = background;
[background release];
Esta pergunta já tinha muitas respostas. Infelizmente, nenhum funcionou para mim. Então, para completar, adiciono o que me ajudou:
Eu tinha várias imagens com o mesmo nome - então as encomendei em subpastas. E eu tinha o caminho completo para o arquivo de imagem que queria mostrar. Com um caminho completo imageNamed:
(como usado em todas as soluções acima) não funcionou e foi o método errado.
Em vez disso, agora uso imageWithContentsOfFile:
assim:
self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
Não sei, se alguém lê tão longe?
Se sim, e este ajudou: por favor vote. ;-)
Para definir a imagem em sua imagem, use a linha de código abaixo,
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];