2009-04-01 24 views
5

Ich habe diesen Code:Wie kann ich UIImageView sein Bild programmgesteuert ändern lassen?

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

Zuerst habe ich eine UIImageView mit IBOutlet erstellt. Landschaft zeigt darauf UIImageView. In InterfaceBuilder habe ich gesagt, um ein bestimmtes Bild in diesem UIImageView zu zeigen. Es ändert sich nie. Ich sehe immer das Bild, das ich in InterfaceBuilder angegeben habe. Aber ich möchte es programmgesteuert einstellen. Wie kann ich das machen?

+0

in IB – nduplessis

+0

dieses ----- Sicherstellen, dass die Steckdose angeschlossen sehen http://stackoverflow.com/questions/3321374/cocoa -touch-adding-a-uiimageview-programmatically –

Antwort

1

ist es möglich, dass Sie nicht eine benutzerdefinierte Ansicht Satz hatte up für diese Nib-Datei? Ich hatte das gleiche Problem. Ich habe eine UIview-Unterklasse für diesen View-Controller erstellt, bin in den Interface Builder gegangen und habe die Ansicht auf diese UIView-Unterklasse gesetzt und dann einen Import-Header für die UIView in die Controller-Klasse eingefügt. das war, was es für mich tat

4

Versuchen setNeedsDisplay auf der Ansicht aufrufen, nachdem Sie das Bild ändern:

[landscape setNeedsDisplay]; 
+0

Es sollte nicht notwendig sein, SetNeedsDisplay – nduplessis

+0

zu nennen Ich dachte nicht, auch, aber ich sah auf einen Code, den ich hatte, dass genau die gleiche Sache machte, und ich rief setNeedsDisplay an - wahrscheinlich unnötig, aber er warf es einfach raus. –

2

diesen Code hinzufügen, könnte es Ihnen helfen:

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

Vergessen Sie nicht die Verbindung zwischen imageview und Dateibesitzer in InterfaceBuilder.

es ist nur müssen Sie danach:

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