2009-04-01 9 views
5

Je possède ce code:Comment faire pour que UIImageView change son image par programme?

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

D'abord, je créé un UIImageView avec IBOutlet. Le paysage pointe vers ce UIImageView. Dans InterfaceBuilder je ai dit de montrer une image spécifique dans ce UIImageView. Ça ne change jamais. Je vois toujours l'image que j'ai spécifiée dans InterfaceBuilder. Mais je veux le définir par programme. Comment puis-je faire ceci?

+0

Assurez-vous que la prise est connecté à IB – nduplessis

+0

voir cette ----- http://stackoverflow.com/questions/3321374/cocoa -touch-ajout-a-uiimageview-programatically –

Répondre

1

est-il possible que vous ne disposez pas d'une vue personnalisée ensemble pour ce fichier nib? J'ai eu le même problème. J'ai créé une sous-classe UIview pour ce contrôleur de vue, suis entré dans Interface Builder et ai défini la vue à cette sous-classe UIView et ai alors ajouté un en-tête d'importation pour UIView dans la classe de contrôleur. C'est ce que j'ai fait pour moi

4

Essayez d'appeler setNeedsDisplay sur la vue après avoir modifié l'image:

[landscape setNeedsDisplay]; 
+0

Il ne devrait pas être nécessaire d'appeler setNeedsDisplay – nduplessis

+0

Je ne pensais pas non plus, mais je regardais un code que j'avais qui faisait exactement la même chose, et je appelait setNeedsDisplay - probablement inutile, mais le jetait juste là. –

2

Ajouter ce code, il peut vous aider:

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

Ne pas oublier la connexion entre imageview et le propriétaire du fichier dans InterfaceBuilder.

il est seulement vous avez besoin après:

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