如何在Swift中将文本字体设置为System Thin?

How to set text font as System Thin in Swift?

我想将标签文本设置为系统细化。阅读 Whosebug 并找到这样的答案:

labelDescriptionView.font = UIFont(name: "System-Thin", size: 15.0)

但是没有用。如何改进我的代码并以编程方式制作细字体样式?

Interface Builder 中的 system 字体是 OS 默认字体,它不是您可以通过名称获得的字体。对于系统字体Apple提供了以下方法:

+ (UIFont *)systemFontOfSize:(CGFloat)fontSize;
+ (UIFont *)boldSystemFontOfSize:(CGFloat)fontSize;
+ (UIFont *)italicSystemFontOfSize:(CGFloat)fontSize;

这些不包括任何精简版,但 iOS 8.2 以上版本您可以使用:

+ (UIFont *)systemFontOfSize:(CGFloat)fontSize weight:(CGFloat)weight;

你可以通过的地方:作为权重:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy

所以细系统字体应该是:

UIFont *thinFont = [UIFont systemFontOfSize:15 weight:UIFontWeightThin];

如果您使用的是 iOS 8.2 或更高版本,您可以使用它;

label.font = UIFont.systemFontOfSize(15, weight: UIFontWeightThin)

对于以前的版本,只需使用 HelveticaNeue-Thin 作为您的字体。

编辑:iOS 14 是:

label.font = UIFont.systemFont(ofSize: 14, weight: .light)