Как проверить, существует ли шрифт в iOS4 во время выполнения - PullRequest
7 голосов
/ 30 мая 2011

Я хочу проверить во время выполнения, существует ли шрифт на устройстве (iphone / ipad)?

Есть ли способ сделать это?

Ответы [ 2 ]

4 голосов
/ 30 мая 2011

Вы можете попробовать использовать метод UIFont fontWithName , я думаю, он должен вернуть nil для шрифта, которого нет в iOS.

+ (UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize
3 голосов
/ 30 мая 2011

Вы можете использовать этот код, чтобы получить список всех доступных шрифтов:

// 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]);
  }
  [fontNames release];
}
[familyNames release];

На основе этого кода вы можете легко создать NSArray со всеми именами шрифтов, а затем использовать его, чтобы проверить, есть ли ваш шрифт, или какой-либо другой рабочий процесс больше подходит для вашего приложения.

источник

...