La tua ipotesi è corretta. iOS richiede l'identificazione di un font in base al relativo nome Postscript (o Fullname), che non è sempre uguale al nome file effettivo del carattere .
Puoi ottenere il nome PostScript usando FontBook (come mostrato nella risposta accettata qui), ma ci sono altri modi.
Da direttamente all'interno di XCode, puoi estrarre il nome PostScript dai font installati del progetto tramite UIFont
. È sufficiente eseguirlo per stampare i nomi PostScript dei font di progetto installati:
In Obiettivo-C ( fonte ):
for (NSString *fontFamilyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) {
NSLog(@"Family: %@ Font: %@", fontFamilyName, fontName);
}
}
O Swift 3.0 ( fonte )
for familyName in UIFont.familyNames {
for fontName in UIFont.fontNames(forFamilyName: familyName ) {
print("\(familyName) : \(fontName)")
}
}
O dal terminale , dall'interno della directory in cui sono presenti i file dei font, puoi eseguire questo script per stampare tutti i nomi PostScript dei font all'interno della directory corrente (utilizza fc-scan
utilità da fontconfig che è già installato probalmente) ( fonte ):
for file in "$arg"*.{ttf,otf}; do fc-scan --format "%{postscriptname}\n" $file; done
Ecco uno screenshot del comando precedente in esecuzione sulla mia directory ~/Library/Fonts
:
Loscriptprecedenteeseguiràtuttiifile.ttf
e.otf
nelladirectorycorrente,quindistamperàilNomePostScriptperognicaratterechepuoiutilizzareperfareriferimentoalfiledifontinXCodeoaltrove.
Sevuoiaverequalcheinformazioneaggiuntiva(PostScriptName,Filename)ealcunicolori,puoieseguirequestoscriptalternativo:
forfilein"$arg"*.{ttf,otf}; do
postscriptname=$(fc-scan --format "%{postscriptname}\n" $file);
printf "3[36m PostScript Name:3[0m %s \e[90m(%s)3[0m\n" "$postscriptname" "$file";
done
Questo è un po 'più veloce del codice di copia-incolla all'interno del tuo file AppDelegate.m per stampare i nomi ogni volta che vuoi aggiungere un nuovo file di font, che è il metodo popolare, ed è anche più veloce dell'apertura del Font in FontBook per ispezionare il nome PostScript.
SUGGERIMENTO UTILE: se alias lo script sopra nel tuo terminale in modo che tutto ciò che devi fare è digitare un singolo comando per ottenere tutti i nomi dei font PostScript per tutti i file nella directory corrente, quindi risparmierai tempo nel tuo flusso di lavoro di sviluppo e tieni a portata di mano questo comodo script quando ne hai bisogno.
Spero che questo aiuti!