Met*_*kin 6 ios xcode6 ios8 uifontdescriptor
以下代码在iOS 7中工作正常,但在iOS 8中不返回粗体或斜体字体.对于Helvetica Neue,它可以使用,但对Arial字体不起作用.
UIFontDescriptor *descriptor1 = [UIFontDescriptor fontDescriptorWithFontAttributes:@{UIFontDescriptorFamilyAttribute: @"Arial"}];
UIFontDescriptor* boldFontDescriptor1 = [descriptor1 fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold];
UIFont* font1 = [UIFont fontWithDescriptor:boldFontDescriptor1 size:16.0];
[self.lblArialB setFont:font1];
Run Code Online (Sandbox Code Playgroud)
在设备和模拟器上测试,仍然是相同的错误.
FWIW,这是我提出的解决方法,使用UIFontDescriptor的属性字典初始化器而不是看似错误的fontDescriptorWithSymbolicTraits:
NSString *fontFamily = @"Arial";
BOOL isBold = YES;
BOOL isItalic = YES;
CGFloat fontSize = 20.0;
UIFontDescriptor *fontDescriptor = [UIFontDescriptor fontDescriptorWithFontAttributes:
@{
@"NSFontFamilyAttribute" : fontFamily,
@"NSFontFaceAttribute" : (isBold && isItalic ? @"Bold Italic" : (isBold ? @"Bold" : (isItalic ? @"Italic" : @"Regular")))
}];
UIFont *font = [UIFont fontWithDescriptor:fontDescriptor size:fontSize];
Run Code Online (Sandbox Code Playgroud)