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

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

34 голосов
/ 11 ноября 2011

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

Ответы [ 6 ]

94 голосов
/ 20 июня 2014

Да, он показывает все шрифты в вашем приложении, включая пользовательские шрифты, которые вы добавили.Вот краткий код для перечисления всех шрифтов:

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)")
     }
 }
13 голосов
/ 27 декабря 2013

Вот правильный фрагмент для перечисления всех шрифтов:

    // 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]);
    }
}
11 голосов
/ 21 ноября 2011

Вы найдете список всех встроенных шрифтов в iOS, для создания которых не требуется никакого дополнительного класса, здесь: Список доступных шрифтов iOS

5 голосов
/ 21 ноября 2011

Грубер опубликовал ссылку на шрифты, включенные недавно: Шрифты для iOS

Редактировать: Сайт, на который он ссылается, iosfonts.com

2 голосов
/ 11 ноября 2011

Я считаю, что это только те шрифты, которые поставляются с iOS.Любые пользовательские шрифты, которые вам нужны, чтобы найти соответствующие .otf или .ttf файлы и включить этот файл в ресурс вашего проекта.

Я говорю это потому, что я хотел использовать HelveticaNeue-UltraLight шрифт.Это перечислено в iOS, и вы видите эту опцию шрифта в XCode.Но при выборе ничего не происходит.Чтобы это работало, я должен был выполнить все вышеперечисленное и вставить файл шрифта HelveticaNeue-UltraLight.

1 голос
/ 10 июля 2012

Пожалуйста, попробуйте этот код: 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]; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...