Essayez les étapes suivantes : Code testé dans Swift 3
.
Étape 1 : Ajouter votre police personnalisée dans votre projet( Assurez-vous que Ajouter à la cible J'utilise la police "PermanentMarker.ttf", "Pecita.otf" et "AROLY.ttf" comme police de test.
Note : Police de soutien Type ttf et otf (Les deux types de polices devraient fonctionner)
Étape 2 : Modifier le fichier application-info.plist. Ajoutez la clé "Fonts provided by application" dans une nouvelle ligne et ajoutez "PermanentMarker.ttf" comme nouvel élément dans le tableau " Polices fournies par l'application ".
Votre plist devrait ressembler à ceci
La police sera désormais disponible dans Interface Builder. Pour utiliser la police personnalisée dans le code, nous devons y faire référence par son nom, mais ce nom n'est souvent pas le même que le nom de fichier de la police.
Maintenant, vous pouvez accéder à la police personnalisée à partir de votre viewController. Je teste la police en plaçant un UIlabel dans le Storyboard comme ci-dessous.
Mise à jour 2 : Working Solution
Après avoir importé votre police personnalisée et mis à jour votre plist
.sélectionner label
de votre storyBoard
,goto Attributes Inspector
sous Label
> Text type
> sélectionnez pour Attributed
et choisissez votre custom font
de la liste.
Sortie :
Mise à jour 1
Si votre police personnalisée ne figure toujours pas dans la liste Xcode font list
Vérifiez le lien correspondant à votre problème
Note : Néanmoins, vous pouvez assigner BebasNeue
ou custom font
à votre étiquette ou à votre bouton, etc., même s'il ne s'affiche pas dans votre programme. interface Builder
Si vous avez des difficultés à définir la police de votre objet par programme, essayez la méthode ci-dessous.
Affecter une police à UILabel :
label?.font = UIFont(name: "BebasNeue", size: 35) // Set to any size
Attribue une police à UIButton :
button.titleLabel?.font = UIFont(name: "BebasNeue", size: 35)
Affecte une police à UITextField :
textField.font = UIFont(name: "BebasNeue", size: 25)
Affecte une police à UINavigationBar :
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "BebasNeue", size: 25)!, NSForegroundColorAttributeName: UIColor.red]
Affecte une police à UIToolBar :
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "BebasNeue", size: 25.0)!], for: UIControlState.normal)
Sortie :
0 votes
Il existe un moyen simple de vérifier si votre police personnalisée est disponible pour votre projet. il suffit de placer un UILabel dans votre tableau principal. Sélectionnez l'étiquette et allez dans le gestionnaire de polices, sélectionnez "custom" et vérifiez si votre police personnalisée est listée dans la liste des polices. si votre police personnalisée est listée dans la liste, alors la police est disponible pour votre projet. si ce n'est pas le cas, il y a un problème avec l'importation de la police. je vous recommande d'importer quelques polices supplémentaires dans votre projet (otf et ttf) et de voir si cela fonctionne.....
0 votes
Si vous avez toujours un problème, postez une capture d'écran de votre plist. Il est fort probable que votre plist soit en cause...
0 votes
Merci pour votre réponse. J'ai essayé de placer un UILabel et de sélectionner custom dans la police, mais je ne trouve pas ma police personnalisée. J'ai essayé d'utiliser une autre police et je peux voir l'autre police dans le constructeur d'interface. Peut-être y a-t-il un problème avec cette police (Bebas Neue) ?
0 votes
Je sais quel est votre problème, avez-vous changé le nom de la police après l'importation, et vice-versa. Pouvez-vous mettre à jour cette ligne avec votre nom de police actuel textLabel ?.font = UIFont(name : "FontName", size : 14)
0 votes
TextLabel ?.font = UIFont(name : "BebasNeue", size : 14). Essayez ceci, cela devrait fonctionner et votre nom de police plist devrait être comme ceci BebasNeue.otf
0 votes
@Joe J'ai mis à jour mon code. Comme je l'ai mentionné, je peux définir la police de manière programmatique, mais je veux définir la police dans le constructeur d'interface également.
0 votes
Ok, je comprends, laisse-moi essayer ....
0 votes
Mon projet de test fonctionne. Je vais vous expliquer dans un instant
0 votes
Je vais télécharger la réponse dans quelques minutes...
0 votes
@Joe Thanks....
0 votes
Laissez-moi clarifier les choses. BebasNeueRegular est une police BebasNeue qui n'est pas identique à ce que vous pensez. Si vous voulez utiliser BebasNeueLight, vous devez la télécharger et l'importer dans votre projet... J'espère que vous comprenez... Je vais tester votre police et mettre à jour mon screencast.....
0 votes
Vous pouvez peut-être télécharger cette police : dafont.com/bebas-neue.font et voir si elle peut être trouvée dans le constructeur d'interface.
0 votes
Vérifiez le screencast.... il fonctionne
0 votes
Police téléchargée à partir de dafont.com/bebas-neue.font
0 votes
Pouvez-vous le trouver dans Interface Builder (storyboard) ?
0 votes
Oui. Utilisez-vous Xcode 8 ?
0 votes
Permettez-moi d'ajouter quelques captures d'écran.
0 votes
Pourquoi vous vous embrouillez avec une police particulière. Il y a des millions de polices dans le monde... Dans mon cas, tout fonctionne..... essayez de faire command+option+shift+k pour nettoyer votre dossier de construction et fermez Xcode et réessayez....
0 votes
Désolé de vous faire perdre votre temps Vérifiez la capture d'écran que j'ai ajoutée, si vous n'avez pas mon problème et que vous pouvez utiliser l'interface de construction, alors c'est mon problème et je vais essayer de le résoudre par moi-même. Merci.
0 votes
Laissez-nous continuer cette discussion dans le chat .
0 votes
@chengsam avez-vous résolu votre problème ? Cela m'arrive aussi pour cette police exacte et je ne sais pas comment le résoudre, j'ai essayé tout ce à quoi je pouvais penser...
0 votes
Vous ne pouvez le faire que de manière programmatique, je n'ai toujours pas réussi à l'utiliser dans Interface Builder.
0 votes
@chengsam avez-vous essayé d'ouvrir "Fonts" sur Mac, de supprimer votre police et de la rajouter ensuite ? Peut-être que cela vous aidera
0 votes
Consultez ma mise à jour.... ma mise à jour explique clairement comment accéder à la police "BebasNeue" à partir du constructeur d'interface.
0 votes
@Joe La mise à jour fonctionne pour moi finalement Je l'ai marqué comme réponse Merci.