Лист SwiftUI: фон появляется над листом при использовании .presentationDetents (регрессия iOS 26)IOS

Программируем под IOS
Ответить
Anonymous
 Лист SwiftUI: фон появляется над листом при использовании .presentationDetents (регрессия iOS 26)

Сообщение Anonymous »

Я столкнулся с ошибкой рендеринга SwiftUI в iOS 26+ при использовании .presentationDetents.
Когда я представляю лист в обычном режиме, любой фон SwiftUI (даже простой Color.clear или .background(Color.red.opacity(0.5))) правильно отображается позади листа.
/>Но тут я добавляю:

Код: Выделить всё

.presentationDetents([.medium])
…тот же самый фон начинает отображаться над листом, хотя:
  • он находится под листом в иерархии представлений
  • он добавляется перед модификатором .sheet
Это похоже на регрессия в стопорном листе SwiftUI.

Минимально воспроизводимый пример

Код: Выделить всё

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.
  • не решает проблему.
  • Код: Выделить всё

    .overlay
    демонстрирует тот же неправильный порядок.
Окружающая среда
  • Xcode 26.0.1
  • Симулятор iOS: 26.1
  • Происходит на как устройство, так и симулятор
  • Лист SwiftUI с .presentationDetents
Известна ли это регрессия с поведением .presentationDetents в iOS 26?

Существует ли обходной путь, позволяющий удерживать лист над корневым фоном приложения?
Любая информация приветствуется.

Подробнее здесь: https://stackoverflow.com/questions/798 ... tiondetent
Ответить

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

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

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

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

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