2009-10-02 4 views
2

J'ai un UIButton (personnalisé, avec image) mis en place dans IB qui est un IBOutlet dans mon code.UIButton avec l'image perdant son image nouvellement définie

Dans ma méthode de viewDidLoad dans le viewController, je suis en train de changer l'image existante du UIButton

UIImage *newbuttonimage = [UIImage imageNamed:@"newbuttonimage.png"]; 
testbutton.imageView.image = newbuttonimage; 

OK, qui fonctionne au démarrage de l'application, mais chaque fois que vous interagissez avec le bouton (appuyez dessus) , il change à l'image originale (définie dans IB). Il n'y a pas d'autre code pour changer les images dans l'ensemble du projet, alors que se passe-t-il? Par ailleurs, lorsque je mets le code ci-dessus dans une autre partie de mon projet, cela ne change pas l'image.

Répondre

9

Vous devriez essayer d'utiliser setImage:forState au lieu d'affecter l'image directement; il existe plusieurs états d'un UIButton et, s'il n'est pas correctement défini, peut engendrer des comportements indésirables (similaires à ceux que vous voyez).

+0

merci, j'ai oublié à ce sujet – cannyboy

0

Doh! J'aurais dû utiliser ce code à la place:

UIImage *newbuttonimage = [UIImage imageNamed:@"newbuttonimage.png"]; 
[testbutton setImage:newbuttonimage forState:UIControlStateNormal];