iOS 16.0 breaks GeometryReader or UIDevice.orientationDidChangeNotification notifications

In iOS 15.5 the correct GeometryProxy.size.height value is available when a UIDevice.orientationDidChangeNotification is received. In iOS 16.0 the GeometryProxy.size.height value is outdated it (reflects the value before rotation).

Expected behavior: iPhone SE (3rd generation) (15.5) Landscape: Height is logged at 375.0. Portrait: Height is logged at 647.0.

Actual behavior: iPhone SE (3rd generation) (16.0) Landscape: Height is logged at 647.0. Portrait: Height is logged at 375.0.

Feedback FB10448199

import SwiftUI

struct ContentView: View {
  let orientationDidChangeNotification =
    NotificationCenter
      .default
      .publisher(for: UIDevice.orientationDidChangeNotification)
   
  var body: some View {
    GeometryReader { geometryProxy in
      Color.clear
        .onReceive(orientationDidChangeNotification) { _ in
          print(geometryProxy.size.height)
        }
    }
  }
}
Post not yet marked as solved Up vote post of dav_es Down vote post of dav_es
981 views

Replies

Hey, did you receive any update on this? Still experience this issue on iOS 17.0 with Xcode 15.0 too