添加Storyboard启动屏后XIB布局错乱,如何恢复原有运行状态?
解决添加Storyboard启动屏后XIB布局错乱的问题
嘿,别慌,你完全不用把所有XIB重构为Storyboard!先给你说怎么恢复到之前的运行状态,再聊聊排查思路:
一、强制恢复到添加启动屏前的状态
按以下步骤操作,应该就能回到之前的正常运行状态:
- 移除启动屏相关配置:
- 打开项目的
General标签页,找到Launch Screen区域,把Launch Screen File的选择清空(也就是恢复到你之前没有启动屏的状态)。 - 打开
Info.plist文件,找到UILaunchStoryboardName这个键,直接删除整个键值对——这是添加启动屏时Xcode自动加上的。 - 确认
General标签里的Main Interface依然选择的是你的main.xib,别不小心改成了启动屏的Storyboard。
- 打开项目的
- 清理Xcode缓存:
- 用快捷键
Cmd+Shift+K清理项目编译缓存。 - 删掉Derived Data:打开Xcode的
Preferences(Cmd+,),切换到Locations标签,找到Derived Data的路径,手动删除整个文件夹;或者在终端执行命令:rm -rf ~/Library/Developer/Xcode/DerivedData。 - 重启Xcode,重新编译运行App。
- 用快捷键
二、是否需要重构所有XIB?
完全不需要! XIB和Storyboard是可以在同一个项目里共存的,你遇到的布局错乱大概率是启动屏设置带来的适配问题,而非XIB本身的问题。可以排查以下几点:
- 检查
main.xib的Size Class设置:是不是添加启动屏时无意中修改了它的Size Class(比如从原来的特定尺寸改成了Any/Any)?打开XIB文件,在右侧Attributes inspector里查看Size选项,恢复到你之前使用的设置。 - 查看约束冲突:打开Xcode的Issue navigator(左侧第三个图标),看看
main.xib有没有红色的约束警告,修复这些冲突即可。 - 确认Deployment Target:检查项目的Deployment Target是否和之前一致,有时候修改启动屏可能会连带改变这个设置,导致布局适配异常。
如果之后还是需要满足苹果的启动屏要求,其实也不用放弃XIB——你可以单独创建一个简单的Storyboard作为启动屏,和现有XIB项目完全不冲突,只要确保启动屏的布局适配好各种尺寸就行,不用动业务相关的XIB文件。
内容的提问来源于stack exchange,提问作者joerenfield
相关产品推荐
相关产品推荐

