SFUID显示属性文本中的细/轻/超轻

时间:2016-02-22 17:45:56

标签: ios xcode fonts

我正在为标签添加属性文本,因为我们想在iOS 8中使用旧金山字体,我们需要设置字距。

在我的故事板中,我设置了一个令人讨厌的字体,所以如果我尝试应用的字体不起作用,我马上就会知道。

我已将字体添加到项目中,将相应的条目添加到"应用程序提供的字体"在Info.plist中验证它们是否包含在目标"复制捆绑资源"在构建阶段。 FontBook中这些字体的PostScript名称是SFUIDisplay- [variant]。

这有效:

[cellLabel setTextColor: [UIColor whiteColor]];


NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
              [UIColor whiteColor], NSForegroundColorAttributeName,
              [UIFont fontWithName:@"SFUIDisplay-Regular" size:17.0], NSFontAttributeName,
              @1.2, NSKernAttributeName,
              nil];
cellLabel.attributedText = [[NSAttributedString alloc] initWithString:showTitle attributes:attributes];

还可以用粗体代替常规字体。如果我尝试使用Light,Thin或Ultralight变体,我会得到不同的结果。在iPad上,我得到了令人讨厌的字体,我把它设置为故事板。在iPhone上,我获得SF UI Display Regular(或者与我未经训练的眼睛无法区分的东西)。如果我使用它而不是归因文本:

[cellLabel setFont:[UIFont fontWithName:@"SFUIDisplay-Light" size:17.0]];

我在两台设备上都使用Regular变体而不是Light,Thin或Ultralight,而Regular和Bold按预期工作。我在iOS 8和9中得到了相同的结果。

我还发现,如果我在标签的属性检查器中将字体设置为Custom > SF UI Display Light,我可以在Light,Regular和Bold之间成功切换,但后来我失去了Ultralight和Thin。同样,如果我将其更改为Ultralight,我可以在Ultralight,Regular和Bold之间进行更改等。

这似乎是一个错误,但我很难弄清楚它是否与字体,iOS或其他东西有关。还有其他人看到过这种奇怪的行为吗?

在你问之前,"为什么不在Xcode中设置字体并继续你的生活?"我告诉你我们需要将一个场景用于多种用途,因此用于任何特定场景的实际字体都是变量。

0 个答案:

没有答案