3 votes

Les polices personnalisées n'apparaissent pas dans la liste des familles de polices

J'utilise Swift 5 et Xcode 11.4.1 sur macOS Catalina.

Je n'ai eu aucun problème pour appliquer la police personnalisée jusqu'à aujourd'hui. J'essaie d'appliquer une police personnalisée à une étiquette appelée "textLabel". Je vais vous montrer comment j'ai essayé et ensuite, dites-moi ce qui ne va pas.

  • En utilisant le Storyboard
  • Je veux utiliser une police personnalisée dont le nom est "myFont.ttf" pour une étiquette appelée "textLabel".
  • J'ai déposé le fichier de la police dans Xcode avec cette option. Option Screenshot
  • Je suis allé dans info.plist pour faire savoir à Xcode que je fournis une police personnalisée. info.plist screenshot
  • J'ai ouvert le main.storyboard, je suis allé dans les inspecteurs d'attributs et j'ai choisi la police de l'étiquette comme style personnalisé.
  • Je ne trouve pas la police "myFont" dans la liste des familles de polices. << Le problème ici.

J'ai donc essayé une autre méthode, par programme.

  • En utilisant le code
  1. Même processus que celui mentionné ci-dessus jusqu'au chiffre 3.

  2. J'ai écrit ce code dans le fichier viewController.swift.

    import UIKit

    class ViewController: UIViewController {

    @IBOutlet weak var textLabel: UILabel!

    override func viewDidLoad() { super.viewDidLoad()

    textLabel.font = UIFont(name: "myFont.ttf", size: 22)

    } }

  3. J'ai lancé l'application, elle montre juste la police système normale.

J'ai essayé les deux méthodes encore et encore (j'ai même créé de nouveaux fichiers 5 fois pour tester cette histoire de police) et j'ai aussi essayé avec différentes polices mais la même chose s'est produite.

2voto

Bibin Jacob Points 449

Le problème est avec le nom que vous fournissez pour UIFont dans la déclaration UIFont(name: "myFont.ttf", size: 22) . Vous n'êtes pas censé fournir le nom myFont Au lieu de cela, vous êtes censé fournir le nom réel de la police, par exemple : Avalon . Vous pouvez obtenir la police en énumérant toute la liste des polices dont vous disposez. Comme ceci :

for family: String in UIFont.familyNames {
    print("\(family)")
    for names: String in UIFont.fontNames(forFamilyName: family) {
        print("== \(names)")
    }
}

Maintenant, vérifiez la sortie de la console, recherchez le nom de la famille et de la police de votre nouvelle police. Passez ce qui est affiché comme nom de "police" correspondant à votre nouvelle famille de polices (il peut y avoir plus d'une "police" associée à votre nouvelle "famille" de polices) à l'option let myNewFont = UIFont(name: "font_name_from_console_output", size: 22) et vous devriez être en affaires !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X