3

我的代码仓库中有一些字体文件用于字体 Nubian 和 Nubian-Alt。它们已获得许可并已付费,并且需要使用。但是,我无法在 iOS 中使用此字体,并且即使字体在 Finder 中预览正常并被识别为 Truetype 字体,我也无法使用 Font Book 打开字体。

Finder 的视图

我首先尝试将 Nubian-Medium 添加到 iOS 应用程序 - 使用应用程序的 Info.plist 中的键“应用程序提供的字体”。该字体未出现在使用以下命令生成的列表中:

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

我检查了目标的“复制捆绑资源”构建阶段,看到字体已添加到列表中。

我尝试添加我在另一个应用程序中使用过的另一种字体“chess-merida-unicode.ttf”,以检查我是否正确添加了字体 - 我将它复制到应用程序并将其添加到应用程序提供的字体数组中,看到它出现在“复制捆绑资源”列表中,使用上面的代码片段报告为可用。

接下来,我查看了 OS X 中的字体——双击确实打开了 Font Book,但没有打开或添加字体。当我尝试将所有 Nubian 字体作为新集合拖入 Font Book 时,它报告了所有文件的问题,特别是在字体文件中包含的表格中。

字体册显示的字体问题

选择所有字体,然后选择继续没有做任何事情。

我下载了一个名为 Font Agent Pro 的第三方应用程序的试用版,它也无法加载这些字体。

我找到了一个名为 fonts.com 的粗略站点并下载了另一个 Nubian-Medium ("ufonts.com_nubian-medium_1_.ttf") - Xcode 能够识别该文件。

我检查了这些文件的权限,并确保它们都是 rw 的,没有变化。

此时,您会怀疑文件只是损坏或损坏,但它们正在网页上使用(这也是项目的一部分)并且工作正常。我还可以采取哪些其他步骤?我该怎么做才能将这些文件添加到 iOS 项目中?如果有某些类型的 TTF 不能在 iOS 项目中使用,我如何检查这些是否属于那种类型?

4

2 回答 2

4

第 1 步:从http://www.fontpalace.com/font-download/Nubian-Thin/下载 Nubian 字体

第 2 步:在项目中添加字体 .ttf 文件

第 3 步:在应用程序中注册您的字体,Fonts provided by application在文件中设置密钥info.plist,有关详细信息,请参阅屏幕截图。

第 4 步:创建标签并为其分配字体,如下所示

UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 50)];
[lbl setText:@"I am Nubian-Thin"];
[lbl setFont:[UIFont fontWithName:@"Nubian-Thin" size:26.0f]];

[self.view addSubview:lbl];

有关更多参考,请参阅屏幕截图

于 2013-04-05T04:32:12.983 回答
2

答案似乎是这些字体是“网络”字体。我不知道如何区分,因为 TTF 文件看起来就像“桌面”字体。学习如何做到这一点是这个问题的目的。

实际上,从某人的硬盘中挖掘出一个旧存档会发现另一个使用 TTF 字体的存档。这些字体仍然有 8.3 个文件名,并且都是作为它们自己的字体系列的成员创建的(因此 Nubian-Medium 和 Nubian-MediumItalic 没有任何关系)。我将它们重新命名,然后通过 RoboFonts 的试用来纠正家庭关系。这导致 TTF 都在 Nubian 家族中。然后发现了一个奇怪的问题,使用这种字体创建的 UILabel 在框架顶部带有 1 像素的水平线。再次执行该过程但选择生成 OTF 输出摆脱了这条线。

字体很容易,除非它们不是,那么它们真的很难。

于 2013-04-11T21:01:53.017 回答