SwiftUI ViewModifier-添加字距调整

时间:2019-12-16 12:50:57

标签: swift swiftui viewmodifier

是否有一种方法可以构建一个应用自定义字体和fontSize的视图修饰符(如以下工作示例),并且在同一个修饰符中还可以添加字距调整?

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)

,但不起作用。

建议?

1 个答案:

答案 0 :(得分:1)

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

extension Text {   
    func applyLabelFont(size: CGFloat, kerning: CGFloat = 4) -> Text {
        self
          .font(.custom(Constants.defaultLabelFontSFProDisplayThin, size: size))
          .kerning(kerning)
    }
}