2010-03-11 4 views
1

J'essaye de travailler avec un UIImageView par programmation et je n'arrive pas à le faire apparaître à l'écran. Dans mon tête, j'ai les lignes suivantes:UIImageView n'apparaissant pas

@interface myClass : UIView { 
    UIImageView *imageView; 
} 
@property (nonatomic, readonly) IBOutlet UIImageView *imageView; 

Puis dans mon viewWillAppear je donne les résultats suivants:

self.imageView.frame = CGRectMake(10, 10, 72, 72); 
self.imageView.backgroundColor = [UIColor redColor]; 
[self.imageView setImage:[UIImage imageNamed:@"test-image.png"]]; 
[containerView addSubview:self.imageView]; 

Et cela ne fonctionne pas du tout. Si j'ajoute les lignes suivantes dans viewWillAppear je peux obtenir un UIImageView apparaisse:

UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"blue_button_bg.png"]]; 
[containerView addSubview:imgView]; 

donc je ne peux pas comprendre pourquoi instancier un UIImageView fonctionnerait, mais en utilisant la Ivar de la classe ne serait pas. Qu'est-ce que je fais mal ici?

Merci beaucoup!

Répondre

0

Vous devez instancier tous les objets. Une façon de le faire, si vous voulez garder une référence à imageView autour, est ... (n'oubliez pas de le libérer dans dealloc).

imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"blue_button_bg.png"]]; 
[containerView addSubview:imageView]; 

Vous pouvez travailler le reste;)

0

Prenez le IBOutlet loin et d'ajouter:

 
self.imageView = [[ImageView alloc]...] 
+0

Vous pouvez probablement prendre la ligne entière @property aussi loin si l'image est utilisée que dans myClass. –