添加LaunchScreen.storyboard后Xcode Storyboard布局异常,如何恢复?
解决老Xcode项目添加LaunchScreen后布局异常的方法
核心问题根源
添加适配iPhone SE(第三代)的LaunchScreen后,Xcode启动时的设备尺寸识别逻辑被改变,导致App整体布局被强制适配为小屏设备规格,即便删除启动屏,缓存或配置残留仍会影响识别结果。
具体修复步骤
清理项目配置残留
- 选中项目Target,进入
General标签页,在Deployment Info区域确认Launch Screen File已设置为原主Storyboard(如Main)或留空,无无效启动屏引用 - 彻底删除模拟器中的App,执行
Product > Clean Build Folder,重启Xcode后重新构建
- 选中项目Target,进入
重置Storyboard适配设置
- 打开主Storyboard,右侧
File Inspector中,确认Interface Builder Document下的View as选择为iPhone 6s(或你需要适配的目标设备),保存更改 - 若项目未启用Size Classes,保持原有设置不要随意勾选;已启用的话,检查所有布局约束是否基于相对位置而非固定尺寸
- 打开主Storyboard,右侧
修改Info.plist强制适配规则
编辑项目的Info.plist文件,添加或调整以下配置:<key>UILaunchScreen</key> <dict> <key>UILaunchScreenName</key> <string></string> <!-- 留空表示不使用启动屏 --> <key>UILaunchScreenMinimumOSVersion</key> <string>9.0</string> <!-- 匹配项目Deployment Target版本 --> </dict> <key>UIRequiresFullScreen</key> <true/> <key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> </array>若需保留启动屏,务必给启动屏添加Auto Layout约束(如控件贴边、相对比例),禁止使用固定宽高值。
检查代码加载视图的布局逻辑
确认第一个代码加载的视图控制器中,所有控件的布局约束是基于父视图边缘或UIScreen.main.bounds,而非硬编码第一代iPhone SE的320x568固定尺寸。
内容的提问来源于stack exchange,提问作者stackunderflow
相关产品推荐
相关产品推荐

