Подтвердить что ты не робот

Шрифты на устройстве iOS

Я прочитал доступные семейства шрифтов [UIFont familyNames], но у меня есть разные списки на разных устройствах (но с тем же iOS). Может кто-нибудь сказать мне, если шрифты, перечисленные выше, включают пользовательские шрифты, предоставляемые другими установленными приложениями, или если это только шрифты, поставляемые с iOS?

4b9b3361

Ответ 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];