Risposte:
Se hai già un IBOutlet su UIImageView, tutto ciò che devi fare è prendere un'immagine e chiamare setImage sul ricevitore (UIImageView). Di seguito sono riportati due esempi di acquisizione di un'immagine. Uno dal Web e uno aggiunto alla cartella Risorse in 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 volta che hai un'immagine, puoi impostare UIImageView:
[imageView setImage:image];
La riga sopra presuppone che imageView sia il tuo IBOutlet.
Questo è tutto! Se vuoi divertirti, puoi aggiungere l'immagine a un UIView e quindi aggiungere transizioni.
Gestione della memoria PS non inclusa.
Si noti che il file NIB non collega tutti gli IBOutlet fino a quando la vista non viene aggiunta alla scena. Se stai cablando le cose manualmente (cosa che potresti fare se le cose si trovano in NIB separati) questo è importante da tenere a mente.
Quindi, se il mio controller di visualizzazione test ha un "imageView" cablato da un pennino, probabilmente questo non funzionerà:
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
[self.view addSubview:testCardViewController.view];
Ma questo:
[self.view addSubview:testCardViewController.view];
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
imageView.image = [UIImage imageNamed:@"myImage.png"];
Ai fini delle persone che potrebbero cercare su Google questo per cercare di risolvere il loro problema, ricordarsi di dichiarare correttamente la proprietà nel file di intestazione e di sintetizzare UIImageView nel file di implementazione ... Sarà difficile impostare l'immagine a livello di codice senza metodi getter e setter.
#import <UIKit/UIKit.h>
@interface YOURCONTROLLERNAME : UIViewController {
IBOutlet UIImageView *imageToDisplay;
}
@property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay;
@end
e poi nel tuo .m:
@implementation YOURCONTROLLERNAME
@synthesize imageToDisplay;
//etc, rest of code goes here
Da lì dovresti andare bene usando qualcosa di simile al seguente per impostare la tua immagine.
[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];
Esempio in 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")!)!)
}
}
Seguendo il consiglio di Jordan (che dovrebbe funzionare effettivamente), prova a impostare UIImageView in modo che sia visibile:
[imageView setHidden: NO];
e inoltre - non dimenticare di collegarlo all'UIView principale:
[mainView addSubview: imageView];
e per portare in primo piano:
[mainView bringSubviewToFront: imageView];
Spero che combinare tutti questi passaggi ti aiuterà a risolvere il mistero.
Il mio problema era che ho provato a cambiare l'immagine in un altro thread. Mi è piaciuto questo:
- (void)changeImage {
backgroundImage.image = [UIImage imageNamed:@"img.png"];
}
Chiama con:
[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];
dispatch_async(dispatch_get_main_queue(), ^{backgroundImage.image = [UIImage imageNamed:@"img.png"];})
Se si desidera impostare l'immagine su UIImageView
programmaticamente, non dimenticare di aggiungere UIImageView
come SubView alla vista principale.
E non dimenticare di impostare ImageView Frame .
ecco il codice
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
myImage.image = [UIImage imageNamed:@"myImage.png"];
[self.view addSubview:myImage];
Non dimenticare di chiamare sizeToFit()
dopo aver modificato l'immagine se si utilizza la dimensione di UIImageView per impostare il contenuto UIScrollView Dimensione e / o calcolo scala 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];
Questa domanda aveva già molte risposte. Purtroppo nessuno ha funzionato per me. Quindi, per amor di completenes, aggiungo ciò che mi ha aiutato:
Avevo più immagini con lo stesso nome, quindi le ho ordinate in sottocartelle. E ho avuto il percorso completo del file di immagine che volevo mostrare. Con un percorso completo imageNamed:
(come utilizzato in tutte le soluzioni sopra) non ha funzionato ed è stato il metodo sbagliato.
Invece ora uso imageWithContentsOfFile:
così:
self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
Non lo so, se qualcuno legge così lontano?
Se è così e questo ti ha aiutato: vota per favore. ;-)
Per impostare l'immagine su imageView, utilizzare sotto la riga di codice,
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];