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

问题描述:

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

有没有办法做到这一点?

+0

为什么downvote?这似乎是一个合法的问题... – 2011-05-30 17:44:28

+0

谢谢,有没有办法知道为什么? – shannoga 2011-05-30 18:05:49

您可以使用此代码来获取所有的字体可用的列表:在此基础上的代码,你可以轻松地与所有的字体名称建立一个NSArray,然后用它来验证

// 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]; 

,如果您的字体是有,或者任何类型的工作流程都更适合您的应用程序。

source

,你可以通过使用UIFontfontWithName方法试试,我觉得它应该为这一点儿也不iOS中存在的字体返回

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

有趣的方法,但你是“在黑暗中拍摄”。如果字体*存在,那么做起来更容易,如果不存在,那么因为更多的字体在iOS上不可用,那么这些字体就是。 – Moshe 2011-05-30 18:06:14