Когда я представляю лист в обычном режиме, любой фон SwiftUI (даже простой Color.clear или .background(Color.red.opacity(0.5))) правильно отображается позади листа.
/>Но тут я добавляю:
Код: Выделить всё
.presentationDetents([.medium])
- он находится под листом в иерархии представлений
- он добавляется перед модификатором .sheet
Минимально воспроизводимый пример
Код: Выделить всё
struct LoginScreen: View {
@State var show = false
var body: some View {
ZStack {
Color.red.opacity(0.3) // should stay under sheet
Button("Show") { show = true }
}
.sheet(isPresented: $show) {
Text("Sheet")
.presentationDetents([.medium]) // ← adding this causes incorrect stacking
}
}
}
- Красный фон должен оставаться за листом.
- Это относится к iOS 18.5/18.6 и более ранним версиям.
- Это также верно, если .presentationDetents не используется.
- В iOS 26.0/26.1 при применении .presentationDetents отрисовывается корневой фон (и наложения) над листом.
- Это происходит даже при самой простой настройке ZStack.
- не решает проблему.
Код: Выделить всё
.zIndex - демонстрирует тот же неправильный порядок.
Код: Выделить всё
.overlay
- Xcode 26.0.1
- Симулятор iOS: 26.1
- Происходит на как устройство, так и симулятор
- Лист SwiftUI с .presentationDetents
Существует ли обходной путь, позволяющий удерживать лист над корневым фоном приложения?
Любая информация приветствуется.
Подробнее здесь: https://stackoverflow.com/questions/798 ... tiondetent
Мобильная версия