iOS 应用安装自定义 TrueType 字体的向后兼容性是否已中断?



我最近发布了为什么这个标签看起来没有样式?,除了试图解决问题之外,还经历了一些投票高的问题,包括在iPhone应用程序中使用自定义字体等。

我所做的是:

  1. 安装 Scurlock.TTF,将其安装在"支持文件"文件夹下。(注意:这是一个最好的近似值,因为上面引用的问题在其屏幕截图中显示了一个"资源"文件夹,并说一定要将字体放入"资源"文件夹中。也许自从那次发布以来情况发生了变化?

  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. 运行根据为什么此标签显示无样式向我建议的代码:

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

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

我想检查字体(上面链接(是否损坏(Font Squirrel 从中生成网络字体.zip几乎没有问题,这至少是一个健全性检查(,或者旧文章推荐 - 都比iOS 7更久远 - 给出了一个过时的答案。

在 Xcode 5 和 iOS 7 中,我如何安装字体(除了在"支持文件"下列出之外的任何地方(?,通知系统它的存在(例如定义 plist 的唯一"应用程序提供的字体"值(,并使用我的代码中的字体,或者做一些适用于我的系统和 iOS 7 的事情?

你的 info.plist 应该看起来像:

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

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

最新更新