IOS: Comment changer l'image de fond d'un bouton lorsque l'utilisateur clique dessus?
J'ai un bouton qui lorsqu'il est cliqué, il modifie le texte d'une étiquette. Voici un extrait de mon code de mon module de contrôleur (happydaysViewController.m):
#import "happydaysViewController.h"
@implementation happydaysViewController
-(IBAction)button {
label.text = @"pop tart";
button.image = @"Costa Rican Frog.jpg";
}
Donc, le texte de l'étiquette changements de vierge à la pop acidulée, cependant l'image d'arrière-plan du bouton ne change pas de vierge à Costa Rica Frog.jpg. En fait, j'obtiens l'erreur suivante:
"bouton" non déclarées
Suis-je en approchant de cette façon le mal?
OriginalL'auteur tonyrocks | 2012-01-26
Vous devez vous connecter pour publier un commentaire.
Il est tout à fait beaucoup de mal avec ce code. Plutôt que de dresser la liste de tout ce que je vais vous montrer ce qu'elle devrait être!
happydaysViewController.h fichier:
happydaysViewController.m fichier:
Tellement de choses à corriger (dans aucun ordre particulier):
Vous ne pouvez pas définir une valeur d'image avec une chaîne, vous devez créer une UIImage objet et de charger le fichier image. Heureusement [UIImage imageNamed:...] le fait très facile.
Boutons peuvent avoir plusieurs images pour les différents états (en surbrillance, sélectionné, handicapés, etc), donc vous devez spécifier l'état lorsque vous définissez l'image.
L'erreur que vous obtenez indique que vous n'avez pas en fait une propriété appelé bouton, qui peut-être parce que vous n'avez jamais ajouté à votre classe, ou peut-être parce que vous avez nommé votre IBAction méthode "bouton" et ce n'est pas en conflit avec la méthode de lecture pour le bien appelé bouton, ce qui pourrait également être appelé "bouton". Dans mon code je suis de passage sur le bouton en tant que paramètre à la méthode click (vous aurez besoin de re-lier le bouton de l'IB si vous modifiez son nom), qui fournit une autre façon d'obtenir le bouton et b) modifie le nom de la méthode afin de ne pas entrer en conflit si vous ne voulez pas avoir une propriété appelée sur le bouton de vue-contrôleur.
Pas tout à fait vrai. Lire ceci: stackoverflow.com/questions/3929281/... - utiliser le format Png pour les images de petite taille ou de ceux qui ont de la transparence, et l'utilisation des fichiers Jpeg pour les grandes images opaques ou des photos.
a noté. merci 🙂
OriginalL'auteur Nick Lockwood
Vous avez à écrire ceci:
Ce ne yo signifie créé une prise de courant? J'ai seulement ajouté deux choses: 1) Bouton 2) Étiquette au-dessus du bouton. La dans interface builder je fais glisser une connexion à partir du bouton à l'étiquette.
Qu'entendez-vous vous connecté le bouton à l'étiquette? Vous devriez avoir une IBAction buttoncliked: la méthode, et deux IBOutlet @propriétés sur votre happydaysViewController de la classe, celui qui est un UIButton appelé bouton, et un qui est un UILabel appelé étiquette, et vous avez besoin de glisser sur votre bouton et étiquette respectivement au bureau de l'IB. Ensuite, vous devez faire glisser à partir de votre bouton de votre IBAction buttoncliked: la méthode.
J'ai mis à jour ma réponse complète (avec le code dont vous avez besoin pour votre .h et .m les fichiers de sorte que vous pouvez voir si quelque chose est manquant.
Nick, c'est incroyable. Merci pour beaucoup de détails. J'ai été en mesure d'obtenir tout le travail (et puis certains). Merci encore!
OriginalL'auteur tamasgal
"Mis en évidence" est l'état de contrôle qui se produit lorsque la touche entrée et les sorties sur le contrôle.
Dans cet exemple, nous allons créer un UIButton par programme qui affiche le bouton de changement de toucher le haut.
Créer un bouton
Écrire un Bouton d'Action, qui va changer l'image sur la touche jusqu'
Sur l'exécution de l'application, vous trouverez qu'il change l'image sur la touche.
OriginalL'auteur dhaya