[UIFont familyName]
поддерживается в iPhone OS 2.0 (до версии 2.0 сторонние приложения не были разрешены на iPhone или iPod touch), поэтому я использовал бы это, чтобы проверить, существует ли семейство шрифтов на текущем устройстве, и если он не существует, используйте подходящий резервный шрифт для этой версии iOS. Вот список шрифтов iPhone от оригинального iPhone 2007 года от Джона Грубера (в отличие от шрифтов в Mac OS X того времени). Я не проверил их все, но проверенные мной шрифты iOS все еще в iOS 5:
Вот пример использования [UIFont familyName]
:
NSLog (@"Font families: %@", [UIFont familyNames]);
Это выдаст такой список:
Семейства шрифтов: (
Thonburi,
"Снелл Раундхэнд",
"Academy Engraved LET", ... и так далее.
Как только вы узнаете фамилию, вы можете использовать UIFont
метод класса fontNamesForFamilyName
, чтобы получить NSArray с именами всех шрифтов в семействе. Например:
NSLog (@"Courier New family fonts: %@", [UIFont fontNamesForFamilyName:@"Courier New"]);
Это выдаст такой список:
Курьер Новые семейные шрифты :(
CourierNewPSMT,
"CourierNewPS-BoldMT",
"CourierNewPS-BoldItalicMT",
"CourierNewPS-ItalicMT"
)
Следующий пример кода печатает список каждого шрифта в каждом семействе на текущем устройстве:
NSArray *fontFamilies = [UIFont familyNames];
for (int i = 0; i < [fontFamilies count]; i++)
{
NSString *fontFamily = [fontFamilies objectAtIndex:i];
NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
NSLog (@"%@: %@", fontFamily, fontNames);
}
Дополнительные сведения см. В справочном документе разработчика iOS для методов класса UIFont
familyNames и fontNamesForFamilyName: .