iOS应用程序安装自定义TrueType字体是否已经破坏了向后兼容性?

时间:2013-10-03 19:30:38

标签: ios objective-c fonts uifont custom-font

我最近发布了Why is this label appearing unstyled?,除了尝试解决问题之外,还经历了一些很好的问题,包括Use custom fonts in iPhone App和其他问题。

我所做的是:

  1. 安装Scurlock.TTF,将其安装在“支持文件”文件夹下。 (注意:这是一个最好的近似值,虽然上面引用的问题在其屏幕截图中显示了一个“Resources”文件夹,并且说肯定会将字体放入“Resources”文件夹。也许自发布以来情况发生了变化?)< / p>

  2. 编辑我的info.plist文件以添加:

    <key>Fonts provided by application</key>
    <array>
    <string>Scurlock.TTF</string>
    </array>
    
  3. 尝试通过以下方式访问Scurlock:

    UIFont *font = [UIFont fontWithName:@"Scurlock" size:40];
    UIFont *font = [UIFont fontWithName:@"Scurlock.TTF" size:40];
    
  4. 运行根据Why is this label appearing unstyled?向我建议的代码:

    for (NSString* family in [UIFont familyNames])
    {
        NSLog(@"%@", family);
        for (NSString* name in [UIFont fontNamesForFamilyName: family])
            NSLog(@"  %@", name);
    }
    

    这给出了一长串字体,包括一个零,我怀疑它可能是一个腐败的家庭,可能是一个腐败的Scurlock。

  5. 我想检查字体(上面链接的)是否已损坏(Font Squirrel从它生成webfont.zip时遇到的麻烦,至少是一个健全性检查),或者旧文章是否推荐 - 所有这些比iOS 7更进一步 - 给出了一个过时的答案。

    如何在Xcode 5和iOS 7中安装字体(除了在“支持文件”下列出它之外的任何地方)?,通知系统它的存在(例如定义plist只有“应用程序提供的字体”值) ),并使用我的代码中的字体,或以其他方式做一些适用于我的系统和iOS 7的东西?

1 个答案:

答案 0 :(得分:1)

您的info.plist应如下所示:

<key>UIAppFonts</key>
<array>
<string>Scurlock.TTF</string>
</array>

关键是UIAppFonts。如果您是说英语的用户,Xcode会将其显示为“由应用程序提供的字体”,但它不是正确的info.plist密钥。