Ваше предположение верно. iOS требует, чтобы вы идентифицировали шрифт на основе его имени Postscript (или Полного имени), которое не всегда совпадает с фактическим именем файла шрифта .
Вы можете получить имя PostScript с помощью FontBook (как показано на принятом ответе здесь), но есть и другие способы.
Прямо из XCode вы можете извлечь PostScript Name из установленных шрифтов проекта с помощью UIFont
. Просто запустите это, чтобы напечатать имена PostScript ваших установленных шрифтов проекта:
В Objective-C ( источник ):
for (NSString *fontFamilyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) {
NSLog(@"Family: %@ Font: %@", fontFamilyName, fontName);
}
}
Или Swift 3.0 ( источник )
for familyName in UIFont.familyNames {
for fontName in UIFont.fontNames(forFamilyName: familyName ) {
print("\(familyName) : \(fontName)")
}
}
Или из терминала , из каталога, в котором у вас есть файлы шрифтов, вы можете запустить этот скрипт для печати всех PostScript-имен шрифтов в текущем каталоге (использует fc-scan
утилиту из fontconfig, которая, вероятно, уже установлена) ( источник ):
for file in "$arg"*.{ttf,otf}; do fc-scan --format "%{postscriptname}\n" $file; done
Вот скриншот вышеуказанной команды, работающей в моем ~/Library/Fonts
каталоге:
Сценарий выше будет проходить через все .ttf
и .otf
файлы в текущем каталоге, а затем распечатать имя PostScript для каждого шрифта , который можно использовать для ссылки на файл шрифта в XCode или в другом месте.
Если вы хотите получить дополнительную информацию (PostScriptName, Filename) и цветовое кодирование, вы можете запустить этот альтернативный скрипт:
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
Это немного быстрее, чем копирование-вставка кода внутри вашего файла AppDelegate.m, для распечатки имен каждый раз, когда вы хотите добавить новый файл шрифта, который является популярным методом, и это также быстрее, чем открывать шрифт в FontBook для осмотрите имя PostScript.
ПОЛЕЗНАЯ СОВЕТ: Если вы используете псевдоним вышеупомянутого сценария в своем терминале, поэтому все, что вам нужно сделать, это набрать одну команду, чтобы получить все имена шрифтов PostScript для всех файлов в текущем каталоге, тогда вы сэкономите время в своем рабочем процессе разработки и имейте этот удобный скрипт, готовый использовать, когда вам это нужно.
Надеюсь это поможет!