求助:iPhone 6真机运行Storyboard显示异常,呈现iPhone SE布局
这种情况我之前排查过好几次,大概率是项目里的适配配置或者启动资源出了问题,给你几个具体的排查和解决方向:
检查启动图/启动界面配置
真机识别设备尺寸很大程度依赖启动资源,如果你的项目里没有包含iPhone 6对应的启动图分辨率(750x1334),系统会自动 fallback 到低分辨率兼容模式,也就是你看到的iPhone SE布局。
解决办法:如果用的是LaunchScreen.storyboard,确保它是完全自适应的(不要固定宽高);如果用的是Assets里的LaunchImage,一定要添加iPhone 6/6s对应的尺寸资源。同时在项目设置的General标签下,确认Launch Screen File选择的是正确的启动界面文件。核对Deployment Info的设备配置
打开项目设置→General→Deployment Info,检查Devices是否选的是「iPhone」,Main Interface是否指向你适配好的Storyboard。另外确认这里的设备适配范围没有错误限制。检查Storyboard的Auto Layout与Size Class
你提到针对iPhone 5/6/7设计了布局,要注意iPhone 5和iPhone 6/7同属Compact Width | Regular Height的Size Class,如果你的布局是靠固定frame或者错误的约束来区分设备,就会出问题。
解决办法:确保所有控件都使用Auto Layout约束,不要硬编码宽高值;如果用了布局变体,检查变体的触发条件是不是正确关联到了iPhone 6的物理尺寸。排查真机的系统缩放设置
有时候用户会在iPhone的「设置」→「显示与亮度」→「视图」里开启「放大」模式,开启后iPhone 6会强制模拟iPhone SE的布局尺寸。可以让测试者把视图改成「标准」模式再试试。清理项目缓存重新编译
Xcode的缓存偶尔会导致奇怪的适配bug,试试这些操作:- 按
Cmd+Shift+K清理项目 - 按
Cmd+Option+Shift+K清理构建文件夹 - 重启Xcode后重新连接真机运行
- 按
内容的提问来源于stack exchange,提问作者Qasim Ali Khan

