В качестве улучшения @ bdev's answer , здесь обновленная версия для перечисления только пользовательских шрифтов.
Шаг 1. Найдите все системные шрифты, используя ответ @ bdev, и сохраните в файл.
Поместите следующий код в первый элемент View Controller -(void)viewDidLoad
, после [super viewDidLoad]
(или в делегат приложения):
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSMutableArray *system_fonts = [NSMutableArray array];
for (NSString *familyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
[system_fonts addObject:fontName];
}
}
if([paths count] > 0) {
[system_fonts writeToFile:[[paths objectAtIndex:0]
stringByAppendingPathComponent:@"array.out"] atomically:YES];
}
Запустите приложение один раз. Останови это потом.
Шаг 2. Добавление настраиваемого шрифта в проект
Используя метод, показанный в принятом ответе, добавьте свои пользовательские шрифты (не забудьте обновить .plist
и добавить файлы шрифтов для сборки, установив Add To Target
.
Шаг 3: Сравните системные шрифты с текущим списком шрифтов
Заменить коды на шаге 1 на:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSMutableArray *system_fonts = [NSMutableArray arrayWithContentsOfFile:[[paths objectAtIndex:0]
stringByAppendingPathComponent:@"array.out"]];
for (NSString *familyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
if (![system_fonts containsObject:fontName]) {
NSLog(@"%@", fontName);
}
}
}
Запустите приложение и отобразится список добавленных вами пользовательских шрифтов.
Это относится к iOS 3.2 до iOS 6 (вероятно, будущие выпуски будут работать нормально). Работает также с .ttc
и .ttf
.