2015-07-15 7 views
22

Sto creando un gioco in Xcode (versione 7.0 Beta) usando Swift, e mi piacerebbe visualizzare l'etichetta "Game Over" alla fine del gioco nel carattere "gameOver.ttf". Ho aggiunto il carattere alla mia cartella delle risorse. Non so come fare riferimento nel mio codice. Posso aiutarmi per favore? My Code:Caratteri Swift personalizzati Xcode 7

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) 
+0

Possibile duplicato (https [Posso incorporare un carattere personalizzato in un'applicazione per iPhone?]://stackoverflow.com/questions/360751/can-i-embed-a-custom-font-in-an-iphone-application) – PAC

risposta

64

Questi sono i passi per aggiungere un carattere personalizzato per voi l'applicazione:

  1. Add carattere "gameOver.ttf" nell'applicazione (Make sure that it's included in the target)
  2. Modificare l'applicazione- file info.plist.
  3. aggiungere la chiave "Caratteri forniti da applicazione" in una nuova riga
  4. e aggiungere "gameOver.ttf" come nuovo elemento dell'array "Caratteri forniti da applicazione".

Ora il font sarà disponibile in Interface Builder. Per utilizzare il carattere personalizzato nel codice abbiamo bisogno di fare riferimento ad esso per nome, ma il nome spesso non è la stessa come nome del file del tipo di carattere

Ci sono 2 modi per trovare il nome:

  1. Installa il carattere sul tuo Mac. Apri Libro Font, apri il carattere e vedi quale nome è elencato.
  2. programmazione elencare i font disponibili nella vostra applicazione

per il secondo approccio aggiungere questa linea è la vostra applicazione del delegato didFinishLaunchingWithOptions

println(UIFont.familyNames()) 

Per elencare i font inclusi in ciascuna famiglia di font, in rapida 2:

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

dopo aver trovato il nome del carattere personalizzato si ma y usare in questo modo:

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

o in una semplice etichetta:

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

Useful resource