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.
UIFont限于每个字体系列两个变体.但是,您可以通过在编辑器中打开其他n-2字体并更改系列名称来解决此问题.
在这里回答了我自己的问题:UIFont fontWithName:限于每个家庭加载2个变种