J'essaie de changer la police d'un UIButton en utilisant Swift ...
myButton.font = UIFont(name: "...", 10)
Cependant .font
est obsolète et je ne sais pas comment changer la police autrement.
Aucune suggestion?
Utilisez titleLabel
à la place. La propriété font
est obsolète dans iOS 3.0. Cela ne fonctionne pas non plus dans Objective-C. titleLabel
est une étiquette utilisée pour afficher le titre sur UIButton
.
myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)
Cependant, lors de la définition du titre, vous ne devez utiliser que setTitle:forControlState:
. N'utilisez pas titleLabel
pour définir directement le texte d'un titre.
Pour Swift 3.:
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)
où "boldSystemFont" et "16" peuvent être remplacés par votre police et votre taille personnalisées.
btn.titleLabel?.font = .systemFont(ofSize: 12)
Vous n'avez pas besoin de forcer le déballage de 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 de manière facultative et s'il est nul, il s'agira d'un non-op.
J'ajouterai également, comme d'autres personnes le disent, que la propriété de police est obsolète et assurez-vous d'utiliser setTitle:forControlState:
lors de la définition du texte du titre.
De la documentation :
La police utilisée pour afficher du texte sur le bouton. ( Déconseillé dans iOS 3.0 . Utilisez plutôt la propriété
font
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'existe pas ("HelveticaNeue-Regular"). Cela ne causait pas de plantage, mais semblait ignorer cette déclaration de police à cause de cela. Une fois que j'ai changé la police pour quelque chose qui existe, les modifications en "size: x" ont été rendues.
Cela fonctionne dans Swift 3.0:
btn.titleLabel?.font = UIFont(name:"Times New Roman", size: 20)
Jetez un oeil ici .
Vous devez plutôt définir la police de la balise titleLabel du bouton.
myButton.titleLabel!.font = UIFont(name: "...", 10)
Vous devriez passer par la propriété titleLabel
.
button.titleLabel.font
La propriété font
est obsolète depuis iOS 3.0.
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)
Si vous ne devez modifier que la taille (Swift 4.):
button.titleLabel?.font = button.titleLabel?.font.withSize(12)
Si vous définissez AttributedString sur UIButton, vous pouvez procéder comme suit.
let attributedText = NSAttributedString(string: "Hello", attributes: [NSAttributedStringKey.font: UIFont(name: "Calibri", size: 19)])
okayButton.setAttributedTitle(attributedText, for: .normal)
Cette façon ne fonctionne pas maintenant:
btn.titleLabel?.font = UIFont(name: "Helvetica", size:12)
Cela marche:
btn.titleLabel?.font = UIFont.init(name: "Helvetica", size:12)
Exemple: button.titleLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)
cela fonctionne pour moi, merci. Je veux changer la taille du texte, mais pas le nom de la police.
var fontSizeButtonBig:Int = 30
btnMenu9.titleLabel? .font = .systemFont (ofSize: CGFloat (fontSizeButtonBig))