Ваше припущення правильне. iOS вимагає, щоб ви визначили шрифт на основі його імені Postscript (або Повного імені), який не завжди є таким, як власне Filename .
Ви можете отримати ім'я PostScript за допомогою FontBook (як показано на прийнятій відповіді тут), але є й інші способи.
Зсередини XCode ви можете отримати Ім'я PostScript з встановлених шрифтів проекту за допомогою 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, ім'я файлу) та кольоровим кодуванням, можете запустити цей альтернативний сценарій:
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 для всіх файлів у поточному каталозі, тоді ви заощадите час у своєму робочому процесі розвитку та готуйте цей зручний сценарій для використання, коли вам це потрібно.
Сподіваюся, це допомагає!