Как использовать дизайн шрифтов системы .monospaced - PullRequest
1 голос
/ 15 июня 2019

Я безуспешно пытаюсь использовать системный шрифт и применить моноширинный дизайн. Я могу успешно сделать текст моноширинным, используя пользовательскую функцию шрифта и передав Courier и размер, но это не идея, потому что тогда размер шрифта будет фиксированным.

enter image description here

VStack {
    Text("lmlmlmlm 12345678")
    Text("lmlmlmlm 12345678")
    .font(Font.system(.body, design: .monospaced))
    Text("lmlmlmlm 12345678")
    .font(Font.custom("Courier", size: 18))
}

Как заставить системный шрифт работать с дизайном .monospaced? Я думаю, что это может быть ошибка с .monospaced, потому что опция .serif изменяет текст, как и ожидалось.

Ответы [ 2 ]

2 голосов
/ 19 июня 2019

В случае, если вы хотите сделать только цифры с одним пробелом, вы можете попробовать что-то вроде этого:

Text("0123456789")
    .font(Font.system(.body, design: .monospaced).monospacedDigit())

Однако это не обходит очевидную ошибку бета-версии Xcode 11.0. Письма по-прежнему не отображаются в одном формате.

2 голосов
/ 17 июня 2019

Кажется, .monospaced шрифт применяется только при фиксированном размере:

Text("monospaced")
  .font(.system(size: 14, design: .monospaced))

Это не будет работать с учетом стиля динамического текста, такого как body. Но, как вы также упомянули, он отлично работает для других шрифтов, так что это, вероятно, ошибка в бета-версии Xcode 11.0 и, надеюсь, будет исправлена ​​в следующих выпусках.


Обновление:

Эта проблема была исправлена ​​с помощью Xcode 11 beta 3 . Следующий код работает сейчас:

Text("monospaced")
    .font(.system(.body, design: .monospaced))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...