UIFont
有获取常规字体(systemFontOfSize
)或粗体字体(boldSystemFontOfSize
)的方法,但是如何获得"瘦系统字体"通过故事板提供?
传递"系统薄"到UIFont
Contructor不起作用,此构造函数仅适用于非系统字体。
答案 0 :(得分:244)
您可以使用系统字体瘦身:
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。
答案 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)