it-swarm.com.de

Schnelle benutzerdefinierte Schriftarten Xcode 7

Ich erstelle ein Spiel in Xcode (Version 7.0 Beta) mit Swift und möchte am Ende des Spiels das Label "Game Over" in der Schriftart "gameOver.ttf" anzeigen. Ich habe die Schriftart zu meinem Ressourcenordner hinzugefügt. Ich weiß nicht, wie ich in meinem Code darauf verweisen soll. Kann ich bitte Hilfe bekommen? .__ Mein 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

Gehen Sie folgendermaßen vor, um Ihrer Anwendung eine benutzerdefinierte Schriftart hinzuzufügen:

  1. Fügen Sie Ihrer Anwendung die Schriftart "gameOver.ttf" hinzu ( Stellen Sie sicher, dass sie im Ziel enthalten ist ).
  2. Ändern Sie die Datei application-info.plist.
  3. Fügen Sie den Schlüssel "Von der Anwendung bereitgestellte Schriftarten" in einer neuen Zeile hinzu
  4. und fügen Sie "gameOver.ttf" als neues Element im Array "Von der Anwendung bereitgestellte Schriftarten" hinzu.

Jetzt ist die Schriftart in Interface Builder verfügbar. Um die benutzerdefinierte Schriftart im Code verwenden zu können, müssen wir sie mit ihrem Namen referenzieren, der Name stimmt jedoch häufig nicht mit dem Dateinamen der Schriftart überein

Es gibt zwei Möglichkeiten, den Namen zu finden:

  1. Installieren Sie die Schrift auf Ihrem Mac. Öffnen Sie das Font Book, öffnen Sie die Schriftart und sehen Sie Welcher Name ist aufgeführt.
  2. Listen Sie programmatisch die verfügbaren Schriftarten in Ihrer App auf

für den zweiten Ansatz fügen Sie diese Zeile als didFinishLaunchingWithOptions Ihres App-Delegierten hinzu. 

println(UIFont.familyNames())

So listen Sie die in jeder Schriftfamilie enthaltenen Schriftarten in Swift 2 auf:

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

nachdem Sie den Namen Ihrer benutzerdefinierten Schriftart gefunden haben, können Sie ihn folgendermaßen verwenden:

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

oder in einem einfachen Etikett:

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

Nützliche Ressource

66
Aladin

Schnell 4

Erstellen Sie eine Klasse

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
    }
}

Benutzen

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

Zusammen mit der obigen Antwort möchte ich eine weitere Antwort hinzufügen, wenn Sie die benutzerdefinierten Schriftarten für Xcode installieren, die sowohl auf Mac als auch auf Mac zugreifen können.

1. Wählen Sie Ihre bevorzugten Schriftarten aus und laden Sie sie herunter

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

Das ist alles :) 

Achten Sie auf das angehängte Bild für weitere Informationen:

 enter image description here

Font Lato erschien im Xcode-Arbeitsbereich

 enter image description here

0