.presentationDetents([.height(550)]) works on iOS 26 but becomes fullscreen on iOS 18.6

4 days ago 8
ARTICLE AD BOX

I'm trying to present a SwiftUI sheet with a fixed height of 550 points, and I expect it to remain 550 points tall on all iOS versions.

.sheet(isPresented: $showSheet) { MySheetContent() .presentationDetents([.height(550)]) }

The behavior changes depending on the iOS version:

On iOS 26, the sheet is exactly 550 points tall (correct behavior)

On iOS 18.6, the sheet automatically expands to fullscreen, even though the actual content height is less than 550 and should fit

So this is not a content overflow problem — 550 is the right height, but .height(550) is ignored on older OS versions.

Question:
Why does .height(550) get ignored in iOS 18.6 and earlier versions, and is there a way to force a fixed-height sheet (550) on all iOS versions without scrolling and without using .medium / .large detents?

Constraints

Sheet must stay at 550 on all OS versions

No fullscreen

No scrolling

Prefer SwiftUI-only solution (UIKit only if there is no alternative)

Environment

SwiftUI

Xcode 26.0.1

Working correctly on iOS 26

Not working on iOS 18.6

Read Entire Article