104 votes

Changer le texte UIButton

J'essaie donc de mettre à jour le texte sur un UIButton lorsque je clique dessus. J'utilise la ligne suivante pour changer le texte:

 calibrationButton.titleLabel.text = @"Calibration";
 

J'ai vérifié que le texte était en train de changer, mais lorsque je lance l'application et que je clique sur le bouton, il passe en "Calibrage" pendant une fraction de seconde, puis revient à sa valeur par défaut. Des idées pourquoi cela pourrait se produire? Existe-t-il une sorte de fonction d'actualisation à appeler?

252voto

Jesse Gumpo Points 2352

Lors de la mise en forme de ses sous-vues, un UIButton définira la valeur de son titleLabel en utilisant ses propres valeurs de titre, afin que vous puissiez définir jusqu'à quatre chaînes différentes pour les quatre états (normal, mis en surbrillance, sélectionné, désactivé). En raison de cette fonctionnalité, la définition du texte de titleLabel directement ne persistera pas et sera réinitialisée par le bouton lorsqu'il affichera ses sous-vues.

 [calibrationButton setTitle:@"Calibration" forState:UIControlStateNormal];
 

37voto

Ashley Mills Points 10205

Pour définir le texte du bouton, utilisez la méthode suivante:

 [calibrationButton setTitle: @"Calibration" forState: UIControlStateNormal];
 

Voir UIButton de référence de classe pour plus de détails ... http://developer.apple.com/library/ios/#documentation/uikit/reference/UIButton_Class/UIButton/UIButton.html

Ou à Swift:

 calibrationButton.setTitle("Calibration", forState: .Normal)
 

2voto

user3429534 Points 1

Pas une affaire énorme, et éventuellement évident, mais plusieurs états sont disponibles pour les boutons. Si vous fournissez le "mauvais", vous ne verrez pas le changement de texte comme désiré.

J'ai remarqué que mon bouton n'a pas été en montrant le texte que j'ai ajouté, en utilisant les méthodes indiquées ici. Suivez ce lien pour assurez-vous de fournir les UIControlState que vous avez l'intention.

Quelle est la différence entre UIControlStateHighlighted et UIControlStateSelected?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X