2011-01-04 2 views
0

Je suis un peu perdu ici. J'ai une classe sous-classée de UIView appelée BalloonGuy. Je l'initialise comme ça.Après avoir créé un UIView avec initWithFrame, comment puis-je changer l'image?

- (id)initWithFrame:(CGRect)frame { 

UIImage* loadedImage = [UIImage imageNamed:@"balloonguy.png"]; 

CGRect rect = CGRectMake(0, 0, loadedImage.size.width, loadedImage.size.height); 

self = [super initWithFrame:rect]; 
image=[loadedImage retain]; 

self.opaque = YES; 
self.backgroundColor = [UIColor clearColor]; 

return self; 

}

-je l'ajouter en tant que sous-vue et tout est génial.

Ce que je ne peux pas faire, cependant, est de changer l'image après, jamais. Je ne vais pas énumérer mes tentatives échouées, mais qu'est-ce que fait que je fais?

+0

Je ne vois pas de code où l'image est ajouté à une vue. – Joe

Répondre

1

Je pense que vous aurez besoin de redessiner votre point de vue lorsque vous changez votre propriété image, remplaçant ainsi le setter de propriété dans ce cas peut être une bonne idée:

- (void) setImage:(UIImage *) im { 
    [image release]; 
    image = nil; 
    image = [im retain]; 
    [self setNeedsLayout]; 
} 
+0

Cela a fonctionné parfaitement! Je vous remercie! –

Questions connexes