J'essaie de changer la police d'un UIButton en utilisant Swift ...
myButton.font = UIFont(name: "...", 10)
toutefois .font
est obsolète et je ne sais pas comment changer la police sinon.
Aucune suggestion?
J'essaie de changer la police d'un UIButton en utilisant Swift ...
myButton.font = UIFont(name: "...", 10)
toutefois .font
est obsolète et je ne sais pas comment changer la police sinon.
Aucune suggestion?
Réponses:
Utilisez titleLabel
plutôt. La font
propriété est obsolète dans iOS 3.0. Il ne fonctionne pas non plus dans Objective-C. titleLabel
est l'étiquette utilisée pour afficher le titre UIButton
.
myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)
Cependant, lors de la définition du texte du titre, vous ne devez utiliser que setTitle:forControlState:
. Ne pas utiliser titleLabel
pour définir directement du texte pour le titre.
titleLabel
est une propriété facultative, ce qui n'était pas le cas auparavant en version bêta.
myButton.titleLabel?.font = ...
fonctionnera puisque si titleLabel est nul, ce sera juste un no-op
Pour Swift 3.0 :
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)
où "boldSystemFont" et "16" peuvent être remplacés par votre police et taille personnalisées.
btn.titleLabel?.font = .systemFont(ofSize: 12)
Vous n'avez pas besoin de forcer le déballage du titleLabel pour le définir.
myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)
Puisque vous n'utilisez pas le titleLabel ici, vous pouvez simplement l'utiliser en option et s'il est nul, ce sera juste un no-op.
J'ajouterai également, comme d'autres personnes le disent, la propriété de la police est obsolète et je m'assurerai de l'utiliser setTitle:forControlState:
lors de la définition du texte du titre.
De la documentation :
La police utilisée pour afficher le texte sur le bouton. ( Déconseillé dans iOS 3.0 . Utilisez plutôt la
font
propriété detitleLabel
.)
Si vous rencontrez des problèmes de taille de police (votre police ne répond pas aux changements de taille) ...
@codester a le bon code:
myButton.titleLabel!.font = UIFont(name: YourfontName, size: 20)
Cependant, ma taille de police ne changeait pas. Il s'avère que je demande une police qui n'existait pas ("HelveticaNeue-Regular"). Cela ne provoquait pas de plantage, mais semblait ignorer cette déclaration de police à cause de cela. Une fois que j'ai changé la police en quelque chose qui existe, les modifications apportées à "size: x" sont restées.
nous pouvons utiliser différents types de polices système comme ci-dessous
myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
myButton.titleLabel?.font = UIFont.italicSystemFont(ofSize:UIFont.smallSystemFontSize)
myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: UIFont.buttonFontSize)
et votre police personnalisée comme ci-dessous
myButton.titleLabel?.font = UIFont(name: "Helvetica", size:12)
Vous devez passer par la titleLabel
propriété.
button.titleLabel.font
La font
propriété est obsolète depuis iOS 3.0.
Si vous définissez AttributedString sur le UIButton, vous pouvez faire la chose ci-dessous.
let attributedText = NSAttributedString(string: "Hello", attributes: [NSAttributedStringKey.font: UIFont(name: "Calibri", size: 19)])
okayButton.setAttributedTitle(attributedText, for: .normal)