UIFont - 如何获得系统瘦字体

时间:2015-08-02 11:57:24

标签: ios objective-c swift uikit uifont

UIFont有获取常规字体(systemFontOfSize)或粗体字体(boldSystemFontOfSize)的方法,但是如何获得"瘦系统字体"通过故事板提供?

传递"系统薄"到UIFont Contructor不起作用,此构造函数仅适用于非系统字体。

4 个答案:

答案 0 :(得分:244)

您可以使用系统字体瘦身:

UIFont.systemFont(ofSize: 34, weight: UIFontWeightThin)

旧金山的可用权重列表:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy
UIFontWeightBlack

san francisco font weights

自iOS 11起, UIFontWeight*已重命名为UIFont.Weight.*。更多你可以到这里https://developer.apple.com/documentation/uikit/uifont.weight

答案 1 :(得分:31)

从iOS 8.2开始 ,您现在可以使用UIFont.systemFontOfSize(_ fontSize: CGFloat, weight weight: CGFloat)

UIFont.systemFontOfSize(19, weight: UIFontWeightLight)

iOS SDK为权重提供了常量:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy

当你想使用系统字体时,使用系统字体比创建基于字体名称的字体更好,因为iOS可以在iOS上更改他们的系统字体(就像他们在iOS 7中使用Helvetica Neue一样,现在,旧金山iOS 9)。

所以我建议将您想要的字体的TTF文件包含为ttf文件作为自定义字体,并在您的应用中使用自定义字体。 < / p>

这就是为什么我不喜欢Apple的特殊原因。 从不 去了Apple说的话。始终做我们想做的事。 Apple不断改变 每个操作系统的默认字体。

答案 2 :(得分:7)

此外,如果您想保持相同的字体大小并且只是改变权重,那么请使用目标元素字体大小。例如:

demoLabel.font = UIFont.systemFont(ofSize: demoLabel.font.pointSize, weight: UIFontWeightThin)

使用此功能,您可以保留默认标签字体大小,只需更改重量。

从iOS 11开始, UIFontWeightThin已重命名为UIFont.Weight.thin。更多你可以到这里https://developer.apple.com/documentation/uikit/uifont.weight

答案 3 :(得分:2)

Swift 4.2

 label.font = UIFont.systemFont(ofSize: 15, weight: UIFont.Weight.thin)