fontDescriptorWithSymbolicTraits 方法返回不同字体系列(而不是 iOS13 上相同字体系



fontDescriptorWithSymbolicTraits 方法返回不同字体系列中的新字体描述符引用,而不是 iOS13 上的相同字体系列

@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[ViewController bold];
}

+(UIFont *)systemFontCaption
{
return [UIFont systemFontOfSize:20.0f weight:UIFontWeightRegular];
}
+(UIFont*)bold
{
UIFont *font = [ViewController systemFontCaption];
UIFontDescriptor *fontDescriptor = [UIFontDescriptor fontDescriptorWithName:font.fontName size:font.pointSize];
UIFontDescriptor *styleDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits:[fontDescriptor symbolicTraits] | UIFontDescriptorTraitBold];
UIFont *boldFont = [UIFont fontWithDescriptor:styleDescriptor size:font.pointSize];
return  boldFont;
}

预期成果:

粗体字体应在同一字体系列中,即SFUI-常规

实际结果:

粗体字体在不同的字体系列中,即时代新罗马

看起来苹果对属性字符串的字体有一个错误,因为......iOS 13 测试版!!但此问题仅在 Xcode 11+ 上显示。

开放式雷达

最好的解决方案是不要使用系统字体,而是精确使用字体名称。

相关内容

  • 没有找到相关文章

最新更新