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?
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-opPour Swift 3.0 :
où "boldSystemFont" et "16" peuvent être remplacés par votre police et taille personnalisées.
la source
La notation par points est impressionnante (Swift 4.2) 👌
la source
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.la source
De la documentation :
la source
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:
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.
la source
nous pouvons utiliser différents types de polices système comme ci-dessous
et votre police personnalisée comme ci-dessous
la source
Vous devez passer par la
titleLabel
propriété.button.titleLabel.font
La
font
propriété est obsolète depuis iOS 3.0.la source
Jetez un oeil ici .
Vous devez plutôt définir la police de titleLabel du bouton.
la source
Cela fonctionne dans Swift 3.0:
la source
Si vous définissez AttributedString sur le UIButton, vous pouvez faire la chose ci-dessous.
la source
Si vous devez modifier uniquement la taille ( Swift 4.0 ):
la source
Exemple:
button.titleLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)
la source
Cette façon ne fonctionne pas maintenant:
Cela marche:
la source
ce travail pour moi, merci. Je veux seulement changer la taille du texte sans changer le nom de la police.
btnMenu9.titleLabel? .font = .systemFont (ofSize: CGFloat (fontSizeButtonBig))
la source