Tu suposición es correcta. iOS requiere que identifique una fuente en función de su nombre PostScript (o nombre completo), que no siempre es el mismo que el nombre de archivo real de la fuente .
Puede obtener el nombre PostScript usando FontBook (como se muestra en la respuesta aceptada aquí), pero hay otras formas.
Desde directamente dentro de XCode, puede extraer el nombre PostScript de las fuentes instaladas del proyecto a través de UIFont
. Simplemente ejecute esto para imprimir los nombres PostScript de sus fuentes de proyecto instaladas:
En Objective-C ( fuente ):
for (NSString *fontFamilyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) {
NSLog(@"Family: %@ Font: %@", fontFamilyName, fontName);
}
}
O Swift 3.0 ( fuente )
for familyName in UIFont.familyNames {
for fontName in UIFont.fontNames(forFamilyName: familyName ) {
print("\(familyName) : \(fontName)")
}
}
O desde el terminal , desde el directorio donde tiene sus archivos de fuentes, puede ejecutar este script para imprimir todos los nombres PostScript de las fuentes dentro del directorio actual (usa la fc-scan
utilidad de fontconfig que ya está instalada) ( fuente ):
for file in "$arg"*.{ttf,otf}; do fc-scan --format "%{postscriptname}\n" $file; done
Aquí hay una captura de pantalla del comando anterior que se ejecuta en mi ~/Library/Fonts
directorio:
La secuencia de comandos anterior se ejecutará a través de todos los archivos .ttf
y .otf
en el directorio actual, luego imprimirá el Nombre PostScript para cada fuente que puede usar para hacer referencia al archivo de fuente en XCode o en otro lugar.
Si desea obtener información adicional (PostScriptName, Filename) y algunos códigos de colores, puede ejecutar este script alternativo:
for file in "$arg"*.{ttf,otf}; do
postscriptname=$(fc-scan --format "%{postscriptname}\n" $file);
printf "\033[36m PostScript Name:\033[0m %s \e[90m(%s)\033[0m\n" "$postscriptname" "$file";
done
Esto es un poco más rápido que copiar y pegar código dentro de su archivo AppDelegate.m para imprimir los nombres cada vez que desee agregar un nuevo archivo de fuente, que es el método popular, y también es más rápido que abrir la Fuente en FontBook para inspeccionar el nombre PostScript.
CONSEJO ÚTIL: Si alias el script anterior en tu terminal de modo que todo lo que necesitas hacer es escribir un solo comando para obtener todos los nombres de fuente PostScript para todos los archivos en el directorio actual, entonces ahorrarás tiempo en tu flujo de trabajo de desarrollo y tenga este útil script listo para usar cuando lo necesite.
¡Espero que esto ayude!