Системный шрифт (SF Pro?), .rounded при использовании .custom — для iOS 15

до сих пор я использовал фиксированные размеры шрифта, например:

Text("Example")
    .font(.system(size: 24 weight: .medium, design: .rounded))

Сейчас я пытаюсь реализовать динамические размеры шрифта, поэтому он масштабируется с различными режимами доступности. Я нашел это, в котором говорится: «Если вы используете iOS 14 или более позднюю версию, вы обнаружите, что ваши пользовательские шрифты автоматически масштабируются без дополнительной работы с вашей стороны». У меня это работает, но теперь я не могу найти способ сделать шрифт .rounded (поскольку .fontDesign — это iOS 16+, а я ориентируюсь на iOS 15).

Кроме того, что я должен использовать в качестве первого параметра (имя шрифта) для системного шрифта? Я пробовал UIFont.systemFont и т. д., но это не сработало. Я даже не уверен на 100%, что SF Pro здесь правильное имя:

Text("Example")
    .font(.custom("SF Pro", size: 24))

Возможно, я делаю это совершенно неправильно каким-то другим, непонятным мне образом. Является ли это правильным подходом к динамическому размеру шрифта для обеспечения доступности — использовать .custom, указать размер по умолчанию (для размера шрифта по умолчанию) и позволить iOS масштабировать его соответствующим образом?

Например, вы ищете что-то помимо .font(.title)?

HangarRash 09.01.2023 07:23

Возможно. Я также видел .title, .body и т. д. (думаю, есть способ установить для них размеры по умолчанию?) — но я также не могу найти способ использовать .rounded с этим. Похоже, я не могу добавить никаких дополнительных параметров и не могу использовать .fontDesign для iOS 15.

Joseph 09.01.2023 07:27

Весь смысл использования .title и других стилей в том, что вы не указываете никаких других свойств. Вы получаете шрифт соответствующего размера и стиля на основе указанного стиля и настроек специальных возможностей пользователя. Поэтому нет смысла указывать стиль и размер. Стиль автоматически задает относительный размер. И если пользователь изменит настройки во время работы вашего приложения, ваше приложение автоматически отобразит изменения.

HangarRash 09.01.2023 07:31

Итак, как указать стиль? Невозможно установить это в пользовательских настройках — должен быть способ установить вес и .rounded в коде, верно?

Joseph 09.01.2023 07:59
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я понял, что если убрать параметр .weight и использовать .largeTitle и т. д., то это работает — и я могу задать вес отдельно:

.font(.system(.largeTitle, design: .rounded))
.fontWeight(.bold)

Как установить размеры по умолчанию для .largeTitle, .body и т. д.?

Вы не устанавливаете размер при использовании стилей. В этом весь смысл. Пользователь выбирает общий размер шрифта в настройках.

HangarRash 09.01.2023 16:51

Ах хорошо. Итак, просто чтобы уточнить, означает ли это, что существует ограниченное количество точных размеров шрифта, которые вы можете использовать в любом приложении iOS (которое использует динамическое масштабирование)? т.е. никакая настройка не может быть выполнена за пределами .title, .body, .callout и т. д. — даже для небольшого изменения размеров шрифта, чтобы он лучше соответствовал тому, что они есть (на пару размеров pt и т. д.)?

Joseph 09.01.2023 17:34

Другие вопросы по теме