Относительные размеры в SwiftUI - PullRequest
0 голосов
/ 01 марта 2020

При работе с HTML / CSS, для стилизации макета мне нравится использовать единицы измерения vw, em и %, я редко использую единицы px. Для меня причина в том, что пользователь может изменить размер шрифта для лучшей читабельности, или пользователь использует другое устройство или браузер, который может иметь другой размер экрана или другой размер шрифта по умолчанию.

.example {
    font-size: 2em;
    padding: 2em;
}

В SwiftUI все, что я могу найти, это CGFloat, данное мне GeometryProxy. Похоже, Apple знает, какой размер системы использовать при использовании модификатора padding(nil) или опускании spacing в HStack или VStack. Но я не могу понять, как получить эти значения.

Я видел несколько сложных решений, но мое приложение требует много заполнения. Теперь я могу передать вычисленное относительное отступление от моего родительского представления детям и детям тех и, и и и. Тем не менее, это кажется крайне неправильным. Наличие ObservableObject с таким значением также кажется плохой практикой.

Наличие GeometryReader в каждом дочернем представлении также невозможно, поскольку GeometryReader занимает все пространство, которое я надеваю не хотят с моими дочерними взглядами, потому что они должны быть такими же высокими, как их содержание.

Я что-то пропускаю, или как лучше это сделать?

TL; DR

Есть ли в SwiftUI относительные единицы измерения для размеров (например, em или vw в CSS), не передавая GeometryProxy каждому дочернему виду? Я не могу использовать GeometryReader в каждом дочернем виде, потому что это нарушает мой макет. Или как получить размер системного отступа по умолчанию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...