Как получить LineSpacing по умолчанию для шрифта в SwiftUI?

Я хотел получить межстрочный интервал шрифта в SwiftUI. Что-то вроде этого:

let font = UIFont.preferredFont(forTextStyle: .body)
font.lineSpacing  // << not possible

Я могу получить pointSize и lineHeight, но не знаю, как рассчитать межстрочный интервал. Вроде бы 2, когда я пытался визуально это понять, но не уверен.

Я также пробовал использовать @Environment(\.lineSpacing) var spacing, но всегда возвращалось 0. Не уверен, как это используется.

Как найти межстрочный интервал определенного шрифта (например, шрифта .body по умолчанию)?

См. stackoverflow.com/a/54184581/5133585

Sweeper 31.05.2024 13:25

@Sweeper Я тоже пробовал использовать эту формулу, но результат был неверным. Я обновлю свой вопрос, добавив код

rayaantaneja 31.05.2024 13:28

@Sweeper Кажется, расстояние между строками несколько завышено. Что приводит к его превышению

rayaantaneja 31.05.2024 13:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
3
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Свойство .leading определяет межстрочный интервал.

UIFont.preferredFont(forTextStyle: .body).leading  // returns ~1.712

Вопрос какое-то время включал пример, в котором было 9 строк текста. Я попытался использовать GeometryReader, чтобы измерить полную высоту этого текста, и вычислил межстрочный интервал по формуле (h - (9 * lineHeight)) / 8.0. Я могу подтвердить, что результат составил 1,7186686197916643, что, по-видимому, очень близко соответствует значению, указанному в этом ответе.

Benzy Neez 31.05.2024 14:58

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