Я прочитал доступные семейства шрифтов [UIFont familyNames]
, но у меня есть разные списки на разных устройствах (но с тем же iOS). Может кто-нибудь сказать мне, если шрифты, перечисленные выше, включают пользовательские шрифты, предоставляемые другими установленными приложениями, или если это только шрифты, поставляемые с iOS?
Шрифты на устройстве iOS
Ответ 1
Да, он отображает все шрифты в вашем приложении, включая пользовательские шрифты, которые вы добавили. Здесь более короткий код для отображения всех шрифтов:
Objective-C
for (NSString *familyName in [UIFont familyNames]){
NSLog(@"Family name: %@", familyName);
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
NSLog(@"--Font name: %@", fontName);
}
}
Swift 2
for familyName:AnyObject in UIFont.familyNames() {
print("Family Name: \(familyName)")
for fontName:AnyObject in UIFont.fontNamesForFamilyName(familyName as! String) {
print("--Font Name: \(fontName)")
}
}
Swift 3
for familyName:String in UIFont.familyNames {
print("Family Name: \(familyName)")
for fontName:String in UIFont.fontNames(forFamilyName: familyName) {
print("--Font Name: \(fontName)")
}
}
Ответ 2
Вот правильный фрагмент для вывода всех шрифтов:
// List all fonts on iPhone
NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indFamily, indFont;
for (indFamily=0; indFamily<[familyNames count]; ++indFamily)
{
NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
fontNames = [[NSArray alloc] initWithArray:
[UIFont fontNamesForFamilyName:
[familyNames objectAtIndex:indFamily]]];
for (indFont=0; indFont<[fontNames count]; ++indFont)
{
NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]);
}
}
Ответ 3
Вы найдете список всех встроенных шрифтов в iOS, которым не нужен дополнительный класс для сборки, здесь: Список доступных шрифтов iOS
Ответ 4
Gruber разместил ссылку на шрифты, включенные немного назад: iOS Fonts
Изменить: сайт, на который он ссылается, iosfonts.com
Ответ 5
Я считаю, что это только шрифты, поставляемые с iOS. Любые пользовательские шрифты вам нужны, чтобы найти соответствующие файлы .otf
или .ttf
и включить этот файл в ресурс проекта.
Я говорю это, потому что я хотел использовать шрифт HelveticaNeue-UltraLight
. Его перечислены в iOS, и вы видите этот вариант шрифта в Xcode. Но при выборе ничего не происходит. Для этого я должен был выполнить вышеуказанное и вставить файл шрифта HelveticaNeue-UltraLight
.
Ответ 6
Пожалуйста, попробуйте этот код: https://github.com/zynga/FontLabel/
для проверки Доступные шрифты iOS:
for (indFamily=0; indFamily<[familyNames count]; ++indFamily){
NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
fontNames = [[NSArray alloc] initWithArray:[UIFont fontNamesForFamilyName:[familyNames objectAtIndex:indFamily]]];
for (indFont=0; indFont<[fontNames count]; ++indFont){
NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]);
}
}
[fontNames release];