UIFont-如何获取系统细字体


98

UIFont有获取常规字体(systemFontOfSize)或粗体字体(boldSystemFontOfSize)的方法,但是如何通过情节提要获得“薄系统字体”?

将“ system-thin”传递给UIFontContructor不起作用,该构造函数仅适用于非系统字体。

Answers:


266

您可以使用系统字体薄粗细:

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

旧金山可用重量的清单:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy
UIFontWeightBlack

旧金山字体粗细

从iOS 11开始, UIFontWeight*已重命名为UIFont.Weight.*。更多信息,请参见https://developer.apple.com/documentation/uikit/uifont.weight


10
仅适用于iOS 8.2和更高版本,thnx
Husam

32

从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中使用San Francisco时)。 。

因此,我建议您将想要的字体的TTF文件作为该ttf文件用作自定义字体,并在您的应用中使用该自定义字体。

这就是为什么我不喜欢Apple的特殊原因。 永远不要 听苹果说的话。总是做我们想要的。 Apple继续 为每个操作系统更改默认字体。


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


2

斯威夫特4.2

 label.font = UIFont.systemFont(ofSize: 15, weight: UIFont.Weight.thin)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.