Я пытаюсь получить набор шрифтов Neo Sans Pro, работающих на iPhone. У меня есть четыре веса: Light, Regular, Medium, Bold как файлы OTF (NeoSansPro-Light.otf, -Regular.otf и т. Д.). Файлы включены в сборку и зарегистрированы в info.plist.
Вызов [UIFont fontNamesForFamilyName: @ "Neo Sans Pro"]
возвращает массив с 4 записями, например "NeoSansPro-Light".
Я могу получить объекты шрифтов для каждой из этих строк, используя UIFont fontWithName: size:
.
Однако, когда я рисую с ними текст, я использую Light, Regular и Medium все версии рисуются одинаково,и похожа на Лайт версию. Версия Bold выглядит по-другому.
Согласно Font Book, каждый файл шрифта содержит разные глифы.
Я полностью озадачен - есть подсказки, что мне нужно делать?
[Добавлен] Еще одно исследование:
NSArray *fonts = [UIFont fontNamesForFamilyName:@"Neo Sans Pro"];
for (NSString *fname in fonts) {
UIFont *font = [UIFont fontWithName:fname size:12.0];
NSLog(@"name: %@ font: %@", fname, font);
}
Выполнение этого кода дает следующий вывод журнала:
name: NeoSansPro-Light font: <UICFFont: 0x66304a0> font-family: "Neo Sans Pro"; font-weight: normal; font-style: normal; font-size: 12px
name: NeoSansPro-Regular font: <UICFFont: 0x66304a0> font-family: "Neo Sans Pro"; font-weight: normal; font-style: normal; font-size: 12px
name: NeoSansPro-Medium font: <UICFFont: 0x66304a0> font-family: "Neo Sans Pro"; font-weight: normal; font-style: normal; font-size: 12px
name: NeoSansPro-Bold font: <UICFFont: 0xaa06070> font-family: "Neo Sans Pro"; font-weight: bold; font-style: normal; font-size: 12px
Итак, три шрифта, которые отображают одно и то же, на самом деле одинаковы. Но в сборке есть четыре толщины шрифта и четыре шрифта.