web-dev-qa-db-fra.com

Polices personnalisées Swift Xcode 7

Je crée un jeu dans Xcode (version 7.0 Beta) avec Swift, et j'aimerais afficher le libellé "Game Over" à la fin du jeu dans la police de caractères "gameOver.ttf". J'ai ajouté la police à mon dossier de ressources. Je ne sais pas comment le référencer dans mon code. Puis-je s'il vous plaît obtenir de l'aide? Mon code: 

let label = SKLabelNode(fontNamed: "gameOver")
    label.text = "Game Over"
    label.fontColor = SKColor.redColor()
    label.fontSize = 150
    label.position = CGPointMake(0, 100)
    label.horizontalAlignmentMode = .Center
    node.addChild(label)
22
theenigma

Voici les étapes à suivre pour ajouter une police personnalisée à votre application:

  1. Ajoutez la police "gameOver.ttf" dans votre application ( Assurez-vous qu'elle est incluse dans la cible )
  2. Modifiez le fichier application-info.plist.
  3. Ajoutez la clé "Polices fournies par l'application" dans une nouvelle ligne
  4. et ajoutez "gameOver.ttf" en tant que nouvel élément du tableau "Polices fournies par l'application".

Désormais, la police sera disponible dans Interface Builder . Pour utiliser la police personnalisée dans le code, vous devez y faire référence par nom, mais le nom n’est souvent pas le même que le nom de fichier de la police.

Il y a 2 façons de trouver le nom:

  1. Installez la police sur votre Mac. Ouvrir le livre de polices, ouvrir la police et voir quel nom est répertorié.
  2. Liste par programme les polices disponibles dans votre application

pour la deuxième approche, ajoutez cette ligne à la variable didFinishLaunchingWithOptions de votre délégué d’application 

println(UIFont.familyNames())

Pour répertorier les polices incluses dans chaque famille de polices, dans Swift 2:

class func printFonts() {
    for familyName in UIFont.familyNames() {
        print("\n-- \(familyName) \n")
        for fontName in UIFont.fontNamesForFamilyName(familyName) {
            print(fontName)
        }
    }
}

après avoir trouvé le nom de votre police personnalisée, vous pouvez l’utiliser comme ceci:

SKLabelNode(fontNamed: "gameOver") // put here the correct font name

ou dans une simple étiquette:

cell.textLabel?.font = UIFont(name: "gameOver", size: 16) // put here the correct font name 

Ressource utile

66
Aladin

Swift 4

Créer une classe

import Foundation
import UIKit

private let familyName = "Montserrat"

enum AppFont: String {
    case light = "Light"
    case regular = "Regular"
    case bold = "Bold"

    func size(_ size: CGFloat) -> UIFont {
        if let font = UIFont(name: fullFontName, size: size + 1.0) {
            return font
        }
        fatalError("Font '\(fullFontName)' does not exist.")
    }
    fileprivate var fullFontName: String {
        return rawValue.isEmpty ? familyName : familyName + "-" + rawValue
    }
}

Utilisation

self.titleLabel?.font = AppFont.regular.size(12.0)
0
GSK

Parallèlement à la réponse ci-dessus, j'aimerais ajouter une autre réponse sur l'installation des polices personnalisées sur Xcode pouvant être un accès à la fois à Mac et à MAC.

1. Sélectionnez et téléchargez vos styles de police préférés à partir d'ici

2. Unzip the download folder and select all the fonts from folder and double tap to open

3. Pop up appears to select all the fonts > check all and install

4. Open Xcode, one can see from Attribute inspector for selected label

C'est tout :) 

Surveillez la photo ci-jointe pour plus de ref:

 enter image description here

Font Lato est apparu dans l'espace de travail Xcode

 enter image description here

0
Suresh Maidaragi