When working with modal sheet views in iOS 26 I animate changes to detent size like this:
if let sheet = self.sheetPresentationController {
let newDetent = 400
sheet.animateChanges {
sheet.invalidateDetents()
sheet.detents = [.custom(resolver: { context in newDetent })]
}
}
What I have found is that when using a Touch ID Device the input detent will be smaller when the system presents it. If I set the detent size to be 400, on an iPhone 16 Pro it will be 400px but on an iPhone SE 2nd Gen it will be 366.
It seems to be consistently 34px shorter on devices with a Touch ID Square Shaped Screen. This 34px corresponds to the bottom safe area. This feels like a bug to me. I would expect the detent size to match what I assign on all devices.
I will monitor if this is fixed in a future beta but it is present as of iOS 26 Beta 5. In the meantime I have built this helper function which will then correctly size it on all devices:
static func getDetent(basedOn inputValue: Double) -> CGFloat {
if let window = UIApplication.shared.windows.first {
if window.safeAreaInsets.bottom > 0 {
// Face ID Device, Bottom Inset of 34
return inputValue
} else {
// Touch ID Device, Bottom Inset of 0
return inputValue + 34
}
} else {
// Fallback, Return Input Value
return inputValue
}
}
This impacts when animating detents as per above but also when presenting a Sheet View for the first time and assigning a custom detent.
Thanks!