Я заметил проблему с верхней безопасной зоной для iPhone, управляющего iOS 26 в ландшафтной ориентации. В частности, это видно со следующей конфигурацией: < /p>
xcode 26.0 Beta 3, Swift 6, Минимальное целевое развертывание 18,0 < /li>
iPhone 16 Simulator, работающий в iOS 26,0 < /li>
< /ul>
Иногда в этом конфигурации. О ориентации устройства (симулятор) при запуске приложения и изменяется ли ориентация. Другими словами, главная вставка в ландшафтной ориентации является противоречивой .
Проблема может быть продемонстрирована с помощью следующего кода, который использует GeometryReader для измерения размера экрана и вставки безопасной области:
struct ContentView: View {
var body: some View {
GeometryReader { geo in
VStack {
Text("\(geo.safeAreaInsets.top)")
Spacer()
HStack {
Text("\(geo.safeAreaInsets.leading)")
Spacer()
Text("\(String(describing: geo.size))")
Spacer()
Text("\(geo.safeAreaInsets.trailing)")
}
Spacer()
Text("\(geo.safeAreaInsets.bottom)")
}
.padding(.horizontal)
}
.border(.red)
}
}
< /code>
Шаги по воспроизведению: < /p>
Запустите код на симуляторе iPhone 16, начиная с ориентации портрета. Обратите внимание на верхнюю вставку. Сравните верхнюю вставку с вставкой из шага 2. < /Li>
< /ol>
Некоторые примеры запуска: < /p> xcode 26.0 Beta 3 + iPhone 16 Simulator, работающий с iOS 26.0: Top inset 20 в шаге 2, но 0 в шаге 3 -> nok
✔ xcod xcod xcod xcod xcod xcod 26.0 xcod 26.0. 18.5: Top вставка всегда 0 -> OK
✔ xcode 16.4 + iPhone 16 Симулятор, работающий в iOS 26.0: Top вставка всегда 0 -> OK
✔ xcode 16.4 + iPhone 16 Simulator, работающий с ios 18.5: Top INSET всегда 0 -> OK < /p>
IS также пробовал IPS. IPAS также пробовал. Хотя вставки отличаются для разных версий iOS, они последовательны по портретной и ландшафтной ориентации. Так что нет проблем. Однако, если он остается ошибкой, которая не решается быстро, мне было бы интересно найти обходной путь. < /P>
Один обходной путь-это игнорировать верхнюю вставку с безопасным районом при запуске на iPhone в ориентации ландшафта, но это кажется грязно. В GeometryReader не помогает:
Я заметил проблему с верхней безопасной зоной для iPhone, управляющего iOS 26 в ландшафтной ориентации. В частности, это видно со следующей конфигурацией: < /p> [list] [*] xcode 26.0 Beta 3, Swift 6, Минимальное целевое развертывание 18,0 < /li> iPhone 16 Simulator, работающий в iOS 26,0 < /li> < /ul> Иногда в этом конфигурации. О ориентации устройства (симулятор) при запуске приложения и изменяется ли ориентация. Другими словами, [b] главная вставка в ландшафтной ориентации является противоречивой [/b]. Проблема может быть продемонстрирована с помощью следующего кода, который использует GeometryReader для измерения размера экрана и вставки безопасной области: struct ContentView: View { var body: some View { GeometryReader { geo in VStack { Text("\(geo.safeAreaInsets.top)") Spacer() HStack { Text("\(geo.safeAreaInsets.leading)") Spacer() Text("\(String(describing: geo.size))") Spacer() Text("\(geo.safeAreaInsets.trailing)") } Spacer() Text("\(geo.safeAreaInsets.bottom)") } .padding(.horizontal) } .border(.red) } } < /code> Шаги по воспроизведению: < /p>
Запустите код на симуляторе iPhone 16, начиная с ориентации портрета. Обратите внимание на верхнюю вставку. Сравните верхнюю вставку с вставкой из шага 2. < /Li> < /ol> Некоторые примеры запуска: < /p> ❌ xcode 26.0 Beta 3 + iPhone 16 Simulator, работающий с iOS 26.0: Top inset 20 в шаге 2, но 0 в шаге 3 -> nok
✔ xcod xcod xcod xcod xcod xcod 26.0 xcod 26.0. 18.5: Top вставка всегда 0 -> OK
✔ xcode 16.4 + iPhone 16 Симулятор, работающий в iOS 26.0: Top вставка всегда 0 -> OK
✔ xcode 16.4 + iPhone 16 Simulator, работающий с ios 18.5: Top INSET всегда 0 -> OK < /p> IS также пробовал IPS. IPAS также пробовал. Хотя вставки отличаются для разных версий iOS, они последовательны по портретной и ландшафтной ориентации. Так что нет проблем. Однако, если он остается ошибкой, которая не решается быстро, мне было бы интересно найти обходной путь. < /P>
Один обходной путь-это игнорировать верхнюю вставку с безопасным районом при запуске на iPhone в ориентации ландшафта, но это кажется грязно. В GeometryReader не помогает:
[/list] [code]GeometryReader { geo in // ... } .id(UUID()) // 👈 doesn't help .border(.red) [/code] [b] Как можно вставить безопасную зону для iPhone в ландшафтной ориентации? [/b]
Я заметил проблему с верхней безопасной зоной для iPhone, управляющего iOS 26 в ландшафтной ориентации. В частности, это видно со следующей конфигурацией:
xcode 26.0 Beta 3, Swift 6, Минимальное целевое значение развертывания 18.0
iPhone 16...
Я заметил проблему с верхней безопасной зоной для iPhone, управляющего iOS 26 в ландшафтной ориентации. В частности, это видно со следующей конфигурацией:
Я работаю над мобильным приложением на основе HTML, где есть необходимость в разработке приложения только для ориентации на портретов и отображения сообщения пользователю, когда он переходит в ландшафт, эта функция отлично работает с CSS Media...
Я работаю над мобильным приложением на основе HTML, где есть необходимость в разработке приложения только для ориентации на портретов и отображения сообщения пользователю, когда он переходит в ландшафт, эта функция отлично работает с CSS Media...
Веб -сайт дизайна материала утверждает, что « на средних и расширенных размерах окна, такие как планшет и настольный компьютер, закуски должны масштабироваться горизонтально для размещения более длинных текстовых строк ». Однако, несмотря на их...