在iOS应用程序中安装特定字体时遇到问题 – 不兼容的TTF?

我的代码库中有一些字体文件,用于字体Nubian和Nubian-Alt。 他们被许可和支付,他们需要使用。 但是我不能在iOS中使用这种字体,即使字体在Finder中预览OK并且被标识为Truetype字体,我也无法用Font Book打开字体。

Finder对“坏”字体的看法

我开始尝试在iOS应用程序中添加Nubian-Medium – 在应用程序的Info.plist中使用关键字“应用程序提供的字体”。 字体没有出现在使用以下命令生成的列表中:

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

我检查了Target的“Copy Bundle Resources”构build阶段,看到该字体已经添加到列表中。

我尝试添加另一个字体,我用在另一个应用程序,“国际象棋merida-unicode.ttf”,检查我正在添加一个字体正确 – 我复制到应用程序,并将其添加到应用程序提供的字体数组,它出现在“复制软件包资源”列表中,使用上面的代码片段报告它是可用的。

接下来,我看看OS X中的字体 – 双击打开字体书,但字体不打开或添加。 当我尝试将所有Nubian字体拖放到Font Book中时,它会报告所有文件的问题,特别是在字体文件中包含的表格中。

Font Book显示的字体问题

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

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

我find了一个名为fonts.com的粗略网站,并下载了另一个Nubian-Medium(“ufonts.com_nubian-medium_1_.ttf”) – Xcode能够识别该文件。

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

在这一点上,你会怀疑这些文件被破坏或损坏,但他们正在使用一个网页(这也是项目的一部分),并且工作正常。 我可以采取哪些其他步骤? 我能做些什么来将这些文件添加到iOS项目中? 如果在某个iOS项目中有某些TTF不能使用,我该如何检查它们是否属于这种types?

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

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

步骤3:在应用程序中注册您的字体,在您的info.plist文件中Fonts provided by application密钥Fonts provided by application ,详情请参阅ScreenShot。

第4步:创build一个标签并将字体分配给它,如下所示

 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]; 

请参阅截图以获取更多参考

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

实际上,从某人的硬盘中挖出一个旧的档案,发现了TTF字体的另一个存档。 这些字体仍然有8.3文件名,并且都被创build为他们自己的字体系列的成员(所以Nubian-Medium和Nubian-MediumItalic没有任何关系)。 我重命名了他们,然后通过RoboFonts的试用来纠正家庭关系。 这导致所有在努比亚家庭TTF。 然后发现一个奇怪的问题,用这个字体创build的UILabel在框架的顶部有一个1像素的水平线。 再次通过这个过程,但select产生OTF输出摆脱了线。

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