2009-04-01 2 views
5

Ho questo codice:Come posso rendere UIImageView cambiare l'immagine a livello di programmazione?

- (void)viewDidLoad { 
[super viewDidLoad]; 
landscape.image = [UIImage imageNamed:@"tenerife1.png"]; 
} 

In primo luogo, ho creato un UIImageView con IBOutlet. Paesaggio sta puntando a quello UIImageView. In InterfaceBuilder ho detto di mostrare un'immagine specifica in quel UIImageView. Non cambia mai. Vedo sempre l'immagine che ho specificato in InterfaceBuilder. Ma voglio impostarlo a livello di codice. Come posso fare questo?

+0

Assicurarsi che l'uscita è collegato in IB – nduplessis

+0

vedono questo ----- http://stackoverflow.com/questions/3321374/cocoa -touch-adding-a-uiimageview-programmaticamente –

risposta

1

è possibile non avete avuto un set visualizzazione personalizzata per quel file di pennino? Ho avuto lo stesso problema. Ho creato una sottoclasse UIview per quel controller di visualizzazione, sono entrato in Interface Builder e ho impostato la vista su tale sottoclasse UIView e poi ho aggiunto un'intestazione di importazione per UIView nella classe Controller. questo è ciò che ha fatto per me

4

Prova a chiamare setNeedsDisplay della vista dopo aver modificato l'immagine:

[landscape setNeedsDisplay]; 
+0

Non dovrebbe esserci alcuna necessità di chiamare setNeedsDisplay – nduplessis

+0

Anche io non la penso così, ma stavo guardando un codice che avevo che stava facendo esattamente la stessa cosa, e io stava chiamando setNeedsDisplay - probabilmente non necessario, ma lo stavo buttando lì fuori. –

2

Aggiungi questo codice, potrebbe aiutarti:

-(void)viewDidAppear:(BOOL)animated 
{ 
landscape.image = [UIImage imageNamed:@"tenerife1.png"]; 
} 
1

Non dimenticare la connessione tra imageview e il proprietario del file in InterfaceBuilder.

è solo che ci vuole dopo che:

landscape.image = [UIImage imageNamed:@"tenerife1.png"];