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

标签 ios objective-c fonts uifont custom-font

我最近发布了Why is this label appearing unstyled? ,除了试图解决问题之外,还解决了一些好评如潮的问题,包括 Use custom fonts in iPhone App等。

我所做的是:

  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. 运行根据Why is this label appearing unstyled?向我建议的代码:

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

    这给出了一长串字体,其中包括一个零,我怀疑它可能是一个损坏的家族,可能是一个损坏的 Scurlock。

我想检查字体(上面链接的)是否已损坏(Font Squirrel 从中生成 webfont.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 键。

关于ios - iOS 应用程序安装自定义 TrueType 字体的向后兼容性是否已被破坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19167658/

相关文章:

ios - 从 CMSampleBuffer 获取曝光时间 (EXIF)

ios - 如何在另一个上下文中绘制pdf上下文?

objective-c - 确定窗口是否可调整大小

ios - 是什么导致了这个 iOS 崩溃? UICollectionView 接收到具有不存在的索引路径的单元格的布局属性

html - IE9 以较细的字体显示某些部分

java - 为单个字符串设置字体?

ios - 如果使用链接的人下载了应用程序,我的 swift 应用程序是否可以链接到应用程序商店并将信息传递给应用程序?

ios - 错误原因 : unrecognized selector sent to instance after add library 'Google-Mobile-Ads-SDK' , '~> 7.8'

ios - AVCapturesession 不适用于 iOS 中的真实产品条形码

cocoa - 在 Cocoa 应用程序中使用(缺失的)字体