UILabel与自定义字体显示*错误*自定义字体

win*_*ith 4 iphone cocoa-touch objective-c ios

我正在使用方法在我的iPhone应用程序中嵌入自定义字体.

嵌入有效:当我运行以下代码时,会列出字体.(目前,我正在以OTF格式嵌入Myriad Pro的所有家庭成员)

for( NSString *familyName in [UIFont familyNames] ){
    for( NSString *fntName in [UIFont fontNamesForFamilyName:familyName] ){
        NSLog(@"%@", fntName);
}}
Run Code Online (Sandbox Code Playgroud)

当我尝试将标签的字体设置为MyriadPro或MyriadPro-Bold时,这可以正常工作.但是,当我将字体设置为MyriadPro-BoldCond时,标签仍然设置在MyriadPro-Bold而不是压缩版本中.(字体名称是正确的,我查了.)我的代码:

[recommendationLabel setFont:[UIFont fontWithName:@"MyriadPro-BoldCond" size:140]];
recommendationLabel.adjustsFontSizeToFitWidth = YES;
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

编辑:除了下面的Ingve解决方案,我发现 - 至少对于Myriad Pro - 只要我从plist中删除未使用的字体,就会显示正确的字体变体.在这种情况下,我需要删除MyriadPro-SemiBold.Mindboggling.

Ben*_*her 5

UIFont限于每个字体系列两个变体.但是,您可以通过在编辑器中打开其他n-2字体并更改系列名称来解决此问题.

在这里回答了我自己的问题:UIFont fontWithName:限于每个家庭加载2个变种