UIFont – 如何获得系统精简的字体

UIFont有获取常规字体( systemFontOfSize )或粗体字体( boldSystemFontOfSize )的方法,但是如何通过storyboard获得“精简系统字体”?

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

你可以使用系统字体薄重量:

 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

从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 

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

所以我build议的是包括TTF文件的字体,你想要使用ttf文件作为自定义字体,并在您的应用程序中使用自定义字体。

这是我不喜欢苹果的特殊原因。 不要 去苹果说什么。 总是做我们想要的。 苹果不断更改 每个操作系统的默认字体。

此外,如果你想保持相同的字体大小,只是改变重量,然后使用目标元素的字体大小。 例如:

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

有了这个,你可以保持默认的标签字体大小,只是改变重量。

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