在iOS系统字体中启用正文文本样式的排版功能

时间:2017-04-21 04:18:37

标签: ios swift fonts uifont typography

我想通过启用它支持的OpenType功能来修改旧金山字体,例如one storey aopened four and six。此设置应仅适用于正文文本样式

文本样式是在Storyboard 属性检查器中设置,不在代码中

由于某些原因,下面的代码不起作用:

94.00

我做错了什么?一般来说,这是正确的方法吗?

2 个答案:

答案 0 :(得分:1)

看起来你需要玩选择器。在合并SixSeven替代方案后,以下代码已开始运作:

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

enter image description here

答案 1 :(得分:0)

我找到了为什么我无法将字体属性应用于文本样式的原因。我在视图的属性检查器中检查了Dynamic Type Automatically Adjusts Font的复选标记。这在某种程度上干扰了代码中设置的字体功能的激活。

dynamic type automatically adjusts font