Как масштабировать системный шрифт в SwiftUI для поддержки Dynami c Type? - PullRequest
3 голосов
/ 16 января 2020

В UIKit я могу изменить размер шрифта UILabel следующим образом, чтобы поддерживать тип Dynami c, используя системный шрифт:

UIFontMetrics.default.scaledFont(for: UIFont.systemFont(ofSize: 16))

Я ошибаюсь или нет способа сделать это в SwiftUI ? Могу ли я использовать только стили шрифтов по умолчанию .title, et c. если я хочу использовать системный шрифт, но также поддерживаю Dynami c Type?

Это решение от HackingWithSwift, похоже, работает только с пользовательскими шрифтами, верно?

Спасибо заранее за любые предложения!

1 Ответ

3 голосов
/ 16 января 2020

Работает следующий подход (проверено с Xcode 11.2.1 / iOS 13.2.2)

var body: some View {
    Text("Hello, World!") // direct text .font
        .font(Font.system(size: UIFontMetrics.default.scaledValue(for: 16)))
}

, а также модификатор на основе вида

VStack {
    Text("Hello, World!")
}
.font(Font.system(size: UIFontMetrics.default.scaledValue(for: 16)))
...