Réponses:
Dans Swift 3, 4, 5:
button.setTitle("Button Title", for: .normal)
Autrement:
button.setTitle("Button Title", forState: UIControlState.Normal)
Aussi un @IBOutlet
doit déclarer pour le button
.
.normal
note désormais les minuscules
forState
àfor
button.setTitle("Button Title",for: .normal)
fonctionne aussi !, merci
Juste une clarification pour ceux qui découvrent la programmation Swift et iOS . Sous la ligne de code:
button.setTitle("myTitle", forState: UIControlState.Normal)
ne s'applique qu'à IBOutlets
, non IBActions
.
Donc, si votre application utilise un bouton comme fonction pour exécuter du code, disons jouer de la musique, et que vous souhaitez changer le titre de Play
en Pause
fonction d'une variable à bascule, vous devez également créer un IBOutlet
pour ce bouton.
Si vous essayez d'utiliser button.setTitle
contre un, IBAction
vous obtiendrez une erreur. C'est évident une fois que vous le savez, mais pour les noobs (nous étions tous) c'est un conseil utile.
sender
de l'action sera le bouton. Vous pouvez appliquer tout ce que vous souhaitez au sender
. Vous n'avez pas besoin d'un point de vente pour ce faire.
let controlStates: Array<UIControl.State> = [.normal, .highlighted, .disabled, .selected, .focused, .application, .reserved]
for controlState in controlStates {
button.setTitle(NSLocalizedString("Title", comment: ""), for: controlState)
}
Swift 3:
Définir le titre du bouton:
//for normal state:
my_btn.setTitle("Button Title", for: .normal)
// For highlighted state:
my_btn.setTitle("Button Title2", for: .highlighted)
Swift 5.0
// Standard State
myButton.setTitle("Title", for: .normal)
Changer de titre lors de l'attribution est un peu différent:
Je viens de rencontrer un problème: si vous avez un UIButton avec un titre attribué, vous devez utiliser:
my_btn.setAttributedTitle(NSAttributedString(string: my_title), for: my_state)
comme, selon Apple SetTitle Doc :
Si vous définissez à la fois un titre et un titre attribué pour le bouton, le bouton préfère l'utilisation du titre attribué à celui-ci.
J'avais un titre attribué et j'ai essayé de lui attribuer un titre, sans effet ...
Swift 3
Lorsque vous effectuez @IBAction:
@IBAction func btnAction(_ sender: UIButton) {
sender.setTitle("string goes here", for: .normal)
}
Cela définit l'expéditeur comme UIButton (au lieu de Any) afin qu'il cible le btnAction comme UIButton
Pour définir un titre pour un bouton dans Xcode à l'aide de swift-04: créez d'abord une méthode appelée setTitle avec le titre du paramètre et l'état UIController comme ci-dessous;
func setTitle(_ title : String?, for state : UIControl.State) {
}
et rappelez cette méthode dans votre méthode d'action de bouton comme;
yourButtonName.setTitle("String", for: .state)
UIControlState
. par exempleforState: .Normal