Iphone 如何在运行时检查iOS4中是否存在字体

Iphone 如何在运行时检查iOS4中是否存在字体,iphone,fonts,ios4,ipa,Iphone,Fonts,Ios4,Ipa,我希望在运行时检查设备(iphone/ipad)上是否存在字体 有办法吗?您可以使用此代码获取所有可用字体的列表: // List all fonts on iPhone NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]]; NSArray *fontNames; NSInteger indFamily, indFont; for (indFamily=0; indFamily<[famil

我希望在运行时检查设备(iphone/ipad)上是否存在字体


有办法吗?

您可以使用此代码获取所有可用字体的列表:

// 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];
//列出iPhone上的所有字体
NSArray*familyNames=[[NSArray alloc]initWithArray:[UIFont familyNames]];
NSArray*fontNames;
NSInteger indFamily,indFont;

对于(indFamily=0;indFamily您可以尝试使用
UIFont
fontWithName方法,对于iOS中不存在的字体,我觉得应该返回nil

+ (UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize

为什么投反对票?这似乎是一个合法的问题…谢谢,有没有办法知道为什么?很有趣的方法,但你是在“黑暗中射击”。如果字体确实存在,那么如果不存在,就更容易做到这一点,因为iOS上没有更多的字体,而不是那些已经存在的字体。