Адаптивные макеты в SwiftUI [закрыто]IOS

Программируем под IOS
Ответить
Гость
 Адаптивные макеты в SwiftUI [закрыто]

Сообщение Гость »


Я работаю над приложением для iOS, которое поддерживает iPhone и iPad. Я создал следующий макет в SwiftUI.

struct WelcomeView: Просмотр { var body: some View { GeometryReader { гео в ВСтек { Разделитель() .frame(высота: geo.size.height * 0,03) Группа { Текст("Добро пожаловать.Название") Текст("Приложение.Имя") } .multilineTextAlignment(.center) .font(.title) .fontWeight(.bold) Изображение(.dog) .изменяемый размер() .frame(ширина: geo.size.width * 0,86, высота: geo.size.height * 0,3) .aspectRatio(contentMode: .fill) .padding(.top, geo.size.height * 0,04) Текст("Добро пожаловать.Сообщение") .font(.body) .multilineTextAlignment(.center) .frame(ширина: geo.size.width * 0,86) .padding(.top, geo.size.height * 0,04) Разделитель() Button("Добро пожаловать.PrimaryButton.Title") { } .buttonStyle(.primary) .frame(ширина: geo.size.width * 0,86, высота: geo.size.height * 0,068) .padding(.дно) } .frame(ширина: geo.size.width, высота: geo.size.height) .navigationBarBackButtonHidden() } } } Поскольку он должен поддерживать размеры экрана как iPhone, так и iPad, я решил определить размеры элементов с помощью GeometryReader.

Он хорошо смотрится на размерах iPhone.


Изображение


Проблема в том, что на iPad все выглядит растянутым и огромным!


Изображение


Я хочу указать что-то вроде максимального значения размеров только для iPad. Например, это экран входа в Facebook. Форма входа на iPad не занимает всю ширину экрана, но и не такая же, как на iPhone.


Изображение


Вот приблизительный макет макета, который я пытаюсь создать для iPad. Лучшее, что я могу описать, это то, что элементы не должны занимать всю ширину, но в то же время не должны иметь ту же ширину, что и размер телефона. Это своего рода золотая середина.


Изображение


Я пытался повозиться с модификатором minWidth/minHeight и maxWidth/maxHeight frame, но безуспешно. Как я могу добиться чего-то подобного в SwiftUI?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»