Post

Replies

Boosts

Views

Activity

Honored Interface Orientations on the iPhone Duo Inner Display
Hello, In Apple’s Tech Talk Prepare your app for iPhone Duo, Apple mentions that on the Duo internal display, supported interface orientations are not honored unless UIRequiresFullScreen is enabled, in which case the app is scaled. I first tested the behavior described by Apple. With UIRequiresFullScreen enabled, I returned .portrait from UIWindowSceneDelegate.supportedInterfaceOrientations(for:), added only UIInterfaceOrientationPortrait in Info.plist, and the app remained upright, using letterboxing as needed, which matched Apple’s description. However, if I add all interface orientations in Info.plist while the scene delegate still returns .portrait, the app becomes fullscreen and locked in portrait orientation, like a portrait-only app, which seems to diverge significantly from the behavior described in the Tech Talk. I then tested most possible combinations and observed five distinct behaviors: Normal: Auto-rotated, always fullscreen B-Portrait: Auto-rotated, fullscreen in portrait; portrait letterboxed in landscape B-Landscape: Auto-rotated, fullscreen in landscape; landscape letterboxed in portrait L-Portrait: Locked in portrait L-Landscape: Locked in landscape But no rule seems to explain how a given combination determines the resulting behavior. Not even AI could figure out a sane one. Does anyone have any idea how this works?
Topic: UI Frameworks SubTopic: UIKit
0
0
130
Sep ’26
Fixed Interface Orientation
Camera apps commonly use portrait-only orientation specifically to prevent the interface from rotating. Otherwise, toolbars, the preview aspect ratio, and camera frames all need to be reorganized just to undo the rotation. On the iPhone Duo inner display, portrait-only no longer prevents rotation. Please provide a UIRequiresFixedInterfaceOrientation key! :-)
2
1
343
Sep ’26
Core motion attitude reference frame
I am working on an iOS application that relies on CoreMotion Attitude, and I need clarification regarding the behavior of reference frames. According to the documentation, when setting the attitude reference frame to CMAttitudeReferenceFrameXTrueNorthZVertical: The Z-axis of the reference frame is vertical (aligned with gravity). The X-axis of the reference frame points to the geographic North Pole (True North). When a device’s orientation matches this reference frame, the roll, pitch, and yaw values reported by CMAttitude should be (0,0,0). However, in my testing: When I align the device’s position with the CMAttitudeReferenceFrameXTrueNorthZVertical reference frame by orienting the screen (device Z-axis) upward and the right side (device X-axis) toward north, the yaw value reported by CMAttitude is 90 degrees instead of the expected 0 degrees. To have CMAttitude report yaw as 0, I must instead orient the top side (device Y-axis) toward north. This seems to contradict my understanding that the X-axis of the device should be aligned with True North, to have the device match the attitude reference frame and have roll, pitch, and yaw values reported by CMAttitude should be (0,0,0). What I'm missing? Thank you for your time and assistance.
1
0
530
Jan ’25
Honored Interface Orientations on the iPhone Duo Inner Display
Hello, In Apple’s Tech Talk Prepare your app for iPhone Duo, Apple mentions that on the Duo internal display, supported interface orientations are not honored unless UIRequiresFullScreen is enabled, in which case the app is scaled. I first tested the behavior described by Apple. With UIRequiresFullScreen enabled, I returned .portrait from UIWindowSceneDelegate.supportedInterfaceOrientations(for:), added only UIInterfaceOrientationPortrait in Info.plist, and the app remained upright, using letterboxing as needed, which matched Apple’s description. However, if I add all interface orientations in Info.plist while the scene delegate still returns .portrait, the app becomes fullscreen and locked in portrait orientation, like a portrait-only app, which seems to diverge significantly from the behavior described in the Tech Talk. I then tested most possible combinations and observed five distinct behaviors: Normal: Auto-rotated, always fullscreen B-Portrait: Auto-rotated, fullscreen in portrait; portrait letterboxed in landscape B-Landscape: Auto-rotated, fullscreen in landscape; landscape letterboxed in portrait L-Portrait: Locked in portrait L-Landscape: Locked in landscape But no rule seems to explain how a given combination determines the resulting behavior. Not even AI could figure out a sane one. Does anyone have any idea how this works?
Topic: UI Frameworks SubTopic: UIKit
Replies
0
Boosts
0
Views
130
Activity
Sep ’26
Fixed Interface Orientation
Camera apps commonly use portrait-only orientation specifically to prevent the interface from rotating. Otherwise, toolbars, the preview aspect ratio, and camera frames all need to be reorganized just to undo the rotation. On the iPhone Duo inner display, portrait-only no longer prevents rotation. Please provide a UIRequiresFixedInterfaceOrientation key! :-)
Replies
2
Boosts
1
Views
343
Activity
Sep ’26
Core motion attitude reference frame
I am working on an iOS application that relies on CoreMotion Attitude, and I need clarification regarding the behavior of reference frames. According to the documentation, when setting the attitude reference frame to CMAttitudeReferenceFrameXTrueNorthZVertical: The Z-axis of the reference frame is vertical (aligned with gravity). The X-axis of the reference frame points to the geographic North Pole (True North). When a device’s orientation matches this reference frame, the roll, pitch, and yaw values reported by CMAttitude should be (0,0,0). However, in my testing: When I align the device’s position with the CMAttitudeReferenceFrameXTrueNorthZVertical reference frame by orienting the screen (device Z-axis) upward and the right side (device X-axis) toward north, the yaw value reported by CMAttitude is 90 degrees instead of the expected 0 degrees. To have CMAttitude report yaw as 0, I must instead orient the top side (device Y-axis) toward north. This seems to contradict my understanding that the X-axis of the device should be aligned with True North, to have the device match the attitude reference frame and have roll, pitch, and yaw values reported by CMAttitude should be (0,0,0). What I'm missing? Thank you for your time and assistance.
Replies
1
Boosts
0
Views
530
Activity
Jan ’25