我想通过启用它支持的OpenType功能来修改旧金山字体,例如one storey a或opened four and six。此设置应仅适用于正文文本样式。
文本样式是在Storyboard 属性检查器中设置,不在代码中。
由于某些原因,下面的代码不起作用:
94.00
我做错了什么?一般来说,这是正确的方法吗?
答案 0 :(得分:1)
看起来你需要玩选择器。在合并Six
和Seven
替代方案后,以下代码已开始运作:
let six = [UIFontFeatureTypeIdentifierKey: kStylisticAlternativesType,
UIFontFeatureSelectorIdentifierKey: kStylisticAltSixOnSelector]
let seven = [UIFontFeatureTypeIdentifierKey: kStylisticAlternativesType,
UIFontFeatureSelectorIdentifierKey: kStylisticAltSevenOnSelector]
let descriptor = UIFontDescriptor.preferredFontDescriptor(withTextStyle: .body).addingAttributes([UIFontDescriptorFeatureSettingsAttribute: [six, seven]])
let font = UIFont(descriptor: descriptor, size: 0.0)
label.font = font
答案 1 :(得分:0)
我找到了为什么我无法将字体属性应用于文本样式的原因。我在视图的属性检查器中检查了Dynamic Type Automatically Adjusts Font
的复选标记。这在某种程度上干扰了代码中设置的字体功能的激活。