UIFont fontWithName:限于每个家庭加载2个变种

这个问题与UILabel极为相似,自定义字体显示*错误*自定义字体 ,但我需要同时使用此系列中的三种字体。 我正在使用Myriad Pro,就像那个问题一样,但我需要使用Bold,Semibold和Regular。

目前,当我尝试通过定义为:

#define MYRIAD_BOLD(x) [UIFont fontWithName:@"MyriadPro-Bold" size:(x)] 

..给了我Semibold。 如果我从plist条目中删除“由应用程序提供的字体”中的Semibold(对于上面链接的类似问题的“答案”),正确返回Bold,但(显然)Semibold不再可用。

关于为什么我(看似)一次限制为两个自定义字体的任何想法? (来自同一个家庭,至少?)

顺便说一下,这是[UIFont fontNamesForFamilyName:@"Myriad Pro"]的NSLog输出:

Myriad Pro font names: ( "MyriadPro-Semibold", "MyriadPro-Regular", "MyriadPro-Bold" )

谢谢!

在一个奇怪但有点预期的解决方法中,我发现我实际上可以通过在编辑器中打开字体来实际使用第三种变体(我只是抓住了我找到的第一个)并更改了系列名称,将其重新打包为otf,然后添加新文件到应用程序plist。 我把fontName保持不变。

奇怪的是,它仍然加载相同的字体名称,并显示在Myriad Pro的+fontNamesForFamilyName:响应下。

打开字体书应用程序。 如果您自己安装了字体,请转到用户,查找所需的字体,并在xcode项目中使用字体的PostScript名称。

它应该适用于同一系列的不同字体变体。