.presentationDetents([.height(550)]) работает на iOS 26, но становится полноэкранным на iOS 18.6.IOS

Программируем под IOS
Ответить
Anonymous
 .presentationDetents([.height(550)]) работает на iOS 26, но становится полноэкранным на iOS 18.6.

Сообщение Anonymous »

Я пытаюсь представить лист SwiftUI с фиксированной высотой 550 пунктов и ожидаю, что его высота останется 550 пунктов во всех версиях iOS.

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

.sheet(isPresented: $showSheet) {
MySheetContent()
.presentationDetents([.height(550)])
}
Поведение меняется в зависимости от версии iOS:
  • В iOS 26 высота листа ровно 550 пунктов (правильное поведение)
  • В iOS 18.6 лист автоматически расширяется до полноэкранный режим, хотя фактическая высота контента меньше 550 и должна поместиться
Так что это не проблема переполнения контента: 550 – это правильная высота, но 

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

.height(550)
 игнорируется в более старых версиях ОС.
Вопрос:

Почему 

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

.height(550)
 игнорируется в iOS 18.6 и более ранних версиях, и есть ли способ заставить лист фиксированной высоты (550) во всех версиях iOS без прокрутки и использования 

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

.medium / .large
 фиксаторы?
Ограничения
  • Размер листа должен оставаться на уровне 550 во всех версиях ОС
  • Нет полноэкранного режима
  • Нет прокрутки
  • Предпочитаете решение только на SwiftUI (UIKit только если нет альтернативы)
Окружающая среда
  • SwiftUI
  • Xcode 26.0.1
  • Правильно работает на iOS 26
  • Не работает на iOS 18.6


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

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

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

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

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

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