1

有没有办法构建一个应用自定义字体和字体大小的视图修改器,如下面的工作示例,并且在同一个修改器中也可以添加字距调整?

struct labelTextModifier: ViewModifier {
    var fontSize: CGFloat

    func body(content: Content) -> some View {
        content
            .font(.custom(Constants.defaultLabelFontSFProDisplayThin, size: fontSize))
    }
}

extension View {   
    func applyLabelFont(size: CGFloat) -> some View {
        return self.modifier(labelTextModifier(fontSize: size))
    }
}

上面的效果很好,但是我无法弄清楚如何将字距调整添加到修饰符

试过了

content
    .kerning(4)

,但没有奏效。

建议?

4

1 回答 1

3

替代方法是使用纯文本修饰符,例如

extension Text {   
    func applyLabelFont(size: CGFloat, kerning: CGFloat = 4) -> Text {
        self
          .font(.custom(Constants.defaultLabelFontSFProDisplayThin, size: size))
          .kerning(kerning)
    }
}
于 2019-12-16T13:58:06.037 回答