SwiftUI ViewModifier - добавить кернинг

Есть ли способ создать модификатор представления, который применяет пользовательский шрифт и размер шрифта, как в приведенном ниже рабочем примере, и имеет в том же модификаторе возможность добавить кернинг?

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 ответ

Решение

Альтернативный вариант - использовать модификатор только для текста, например

extension Text {   
    func applyLabelFont(size: CGFloat, kerning: CGFloat = 4) -> Text {
        self
          .font(.custom(Constants.defaultLabelFontSFProDisplayThin, size: size))
          .kerning(kerning)
    }
}
Другие вопросы по тегам