Simple question ici. J'ai un UIButton, currencySelector et je souhaite modifier le texte par programme. Voici ce que j'ai
currencySelector.text = "foobar"
Xcode me donne l'erreur "Déclaration attendue". Qu'est-ce que je fais de travers et comment puis-je modifier le texte du bouton?
Dans Swift 3:
button.setTitle("Button Title",for: .normal)
Autrement:
button.setTitle("Button Title", forState: UIControlState.Normal)
Juste une clarification pour ceux qui découvrent Swift et iOS programmation. En dessous de la ligne de code:
button.setTitle("myTitle", forState: UIControlState.Normal)
s'applique uniquement à IBOutlets
, pas IBActions
.
Ainsi, si votre application utilise un bouton en tant que fonction pour exécuter du code, par exemple, la lecture de musique, et que vous souhaitez changer le titre de Play
à Pause
en fonction d'une variable à basculement, vous devez également créer un IBOutlet
pour ce bouton.
Si vous essayez d'utiliser button.setTitle
avec une 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.
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)
for state: UIControlState in [.normal, .highlighted, .disabled, .selected, .focused, .application, .reserved] {
button.setTitle(NSLocalizedString("Title", comment: ""), for: state)
}
Swift 3.0
// Standard State
myButton.setTitle("Title", for: .normal)
Changer de titre quand on lui attribue 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, par Apple SetTitle Doc :
Si vous définissez un titre et un titre attribué au bouton, celui-ci préfère utiliser le titre attribué par rapport à celui-ci.
J'avais un titre attribué et j'ai essayé de mettreTitle dessus, sans effet ...
Swift 3
Quand vous faites le @IBAction:
@IBAction func btnAction(_ sender: UIButton) {
sender.setTitle("string goes here", for: .normal)
}
Ceci définit l'expéditeur sur UIButton (au lieu de Any) afin de cibler le btnAction en tant que UIButton.
Swift 4.2 et supérieur
en utilisant le bouton IBOutlet
btnOutlet.setTitle("New Title", for: .normal)
en utilisant le bouton IBAction
@IBAction func btnAction(_ sender: UIButton) {
sender.setTitle("New Title", for: .normal)
}
Swift 3
let button: UIButton = UIButton()
button.frame = CGRect.init(x: view.frame.width/2, y: view.frame.height/2, width: 100, height: 100)
button.setTitle(“Title Button”, for: .normal)
Pour définir un titre pour un bouton dans Xcode avec 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-vous cette méthode dans votre méthode d'action de bouton.
yourButtonName.setTitle("String", for: .state)