首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字体描述符在iOS 8中返回零

字体描述符在iOS 8中返回零
EN

Stack Overflow用户
提问于 2014-09-22 14:59:50
回答 2查看 2.4K关注 0票数 6

下面的代码在iOS 7中运行良好,但在iOS 8中不返回粗体或斜体。这对于Helvetica Neue是可以的,但对于Arial字体则不起作用。

代码语言:javascript
复制
UIFontDescriptor *descriptor1 = [UIFontDescriptor fontDescriptorWithFontAttributes:@{UIFontDescriptorFamilyAttribute: @"Arial"}];
UIFontDescriptor* boldFontDescriptor1 = [descriptor1 fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold];
UIFont* font1 = [UIFont fontWithDescriptor:boldFontDescriptor1 size:16.0];
[self.lblArialB setFont:font1];

在设备和仿真器上进行测试,仍然存在相同的错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-06 19:01:00

FWIW,这是我想出的解决办法,使用UIFontDescriptor的属性字典初始化器,而不是看似有缺陷的fontDescriptorWithSymbolicTraits:

代码语言:javascript
复制
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];
票数 6
EN

Stack Overflow用户

发布于 2014-10-02 19:05:41

对我来说,fontDescriptorWithFontAttributes和以前一样工作,但是fontDescriptorWithSymbolicTraits不幸地失败了。我通过回到使用UIFont fontWithName: size来解决这个问题:

代码语言:javascript
复制
[self.titleLabel setFont:[UIFont fontWithName:@"PTSans-Bold" size:47.67]];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25977207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档