iOS ttf字体只能部分工作

我在我的应用程序中需要OpenSans,因此我导入了整个OpenSans群,其中包括Bold,ExtraBold,Italic,Regular,Light等。 我在Mac上将它们添加到Fontbook(以便在使用它时检查我需要的确切名称),在文件结构中将它们添加到我的项目的Build阶段中。

现在奇怪的是; 当我在UIFont中使用它们时,只有OpenSans-Bold有效。 其余的不起作用。 如果我使用OpenSans-Bold(完全是Fontbook给出的标识符),一切正常。 但是,如果我将其更改为OpenSans-Regular或OpenSans-Light或该系列中的其他内容,我会使用UIFont获取systemfont,并且在使用Quartz绘制时我什么也得不到。

所有字体都在所有列表中,我检查了Fontbook中的所有标识符(这就是为什么我无法让OpenSans-Bold工作),但现在我不知所措。 知道我可能做错了吗?

OpenSans Regular只是OpenSans ,半粗体是OpenSans-Semibold等。

在Font Book.app中选择字体并选择Command + I ,它会显示字体信息。 在顶部的“PostScript名称”中,您可以看到字体的调用方式以及如何在代码中调用它。

此外,只需确保字体实际上已添加到您的包和您的plist 🙂

您可以检查ttf文件提供的字体使用以下代码行。

此方法由UIFont类提供。

  • (NSArray *)fontNamesForFamilyName:(NSString *)familyName

您需要在正确的位置添加文件,然后在plist文件中,然后枚举它们并打印它们以获取PDF名称,以便您可以访问它们。 很可能你使用了错误的名字。 字体有三种名称:

  • 文件名
  • 字体书中的字体名称
  • PDF名称 – 这是您用来访问代码中字体的名称

查看此答案: 向iOS应用程序添加自定义字体以查找其真实姓名