Я работаю над приложением для 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?
Мобильная версия