Safe Area insets aren't obeyed on iPhone X splash screen

Originator:simonmitchell.dev
Number:rdar://45224209 Date Originated:12/10/2018
Status: Resolved:
Product:iOS 12 Product Version:12.0
Classification: Reproducible:Always
 
Area:
UIKit

Summary:
When creating a landscape splash screen in a storyboard, the safe area inset on the LHS of the device isn't obeyed meaning elements are displayed in a different position to when the app is fully loaded.

Steps to Reproduce:
1. Create a new project.
2. Disable portrait modes in project settings.
3. Add some UI element to your splash screen and constrain it's leading edge to the safe area of the view controller. Important not to add a navigation controller or tab bar as we aren't in our case.
4. Add the same UI element to your main interface with identical constraints
5. Witness the UI element jumping about on screen between splash and full launch.

Expected Results:
The UI element should not jump about at all.

Notes:
The video

Actual Results:
The UI element jumps to the right when the app launches fully.


Version/Build:
iOS 12

Configuration:
Xcode 10.0, iOS 12

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!