Comment changer la police d'UIButton avec Swift

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 sinon.

Aucune suggestion?

Utilisez plutôt titleLabel . La propriété de font est deperecated dans iOS 3.0. Cela ne fonctionne pas non plus dans Objective-C. titleLabel est une label utilisée pour afficher le titre sur UIButton .

 myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20) 

Cependant, lors de la définition du text du titre, vous ne devez utiliser que setTitle:forControlState: N'utilisez pas titleLabel pour définir directement un text pour le titre.

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.

De la documentation :

La police utilisée pour afficher le text sur le button. ( Déconseillé dans iOS 3.0 .) Utilisez plutôt font propriété font de l'object titleLabel .

Vous n'avez pas besoin de forcer le titleLabel pour le définir.

myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)

Puisque vous n'utilisez pas l'label de titre ici, vous pouvez juste l'employer facultativement et si c'est nul il sera juste un no-op.

Je vais aussi append, comme d'autres personnes le disent, la propriété de police est obsolète, et assurez-vous d'utiliser setTitle:forControlState: lors de la définition du text du titre.

Cela fonctionne dans Swift 3.0:

 btn.titleLabel?.font = UIFont(name:"Times New Roman", size: 20) 

Vous devriez passer par la propriété titleLabel .

button.titleLabel.font

La propriété de font a été dépréciée depuis iOS 3.0.

Jetez un coup d'oeil ici .

Vous devez plutôt définir la police de titleLabel du button.

 myButton.titleLabel!.font = UIFont(name: "...", 10) 

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 j'ai demandé une police qui n'existait pas ("HelveticaNeue-Regular"). Cela ne causait pas de crash, mais semblait ignorer cette déclaration de police à cause de ça. Une fois que j'ai changé la police à quelque chose qui existe, les changements de "taille: x" ont rendu.

Exemple: button.titleLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)

  • Si vous voulez utiliser la police defaul de sa propre famille, utilisez par exemple: "HelveticaNeue"
  • Si vous voulez spécifier la police familiale, utilisez par exemple: "HelveticaNeue-Bold"

Dans Xamarin.iOS, vous pouvez écrire le code en C # comme suit:

myButton.TitleLabel.Font = UIFont.FromName ("Helvetica-Bold", 33f);

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)