【问题标题】:How to check if font exist in iOS4 at runtime如何在运行时检查iOS4中是否存在字体
【发布时间】:2011-09-04 23:23:44
【问题描述】:

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

有没有办法做到这一点?

【问题讨论】:

  • 为什么投反对票?这似乎是一个合法的问题......
  • 谢谢,有没有办法知道原因?

标签: iphone fonts ios4 ipa


【解决方案1】:

你可以尝试使用UIFont fontWithName 方法,我觉得它应该为iOS中不存在的字体返回nil

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

【讨论】:

  • 有趣的方法,但你是“在黑暗中拍摄”。如果字体确实存在,这样做会更容易,如果不存在,因为iOS上没有更多字体可用。
【解决方案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]);
  }
  [fontNames release];
}
[familyNames release];

基于此代码,您可以轻松构建一个包含所有字体名称的 NSArray,然后使用它来验证您的字体是否存在,或者任何类型的工作流程更适合您的应用。

source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    相关资源
    最近更新 更多