Xcode中多款iPhone启动屏显示异常:部分尺寸不对、5s不显示
搞定iOS Launch Image适配异常问题
Hey,我来帮你解决这个启动屏的适配坑!看起来你用的是传统的Assets.xcassets配置启动图的方式,这种方式虽然经典,但细节没把控好就容易出各种机型适配问题,咱们一步步来排查修复:
一、先检查Launch Image的基础配置
打开Assets.xcassets选中你的Launch Image,在右侧的Attributes Inspector(属性检查器)里确认这几点:
- Devices要选
iPhone(如果只做iPhone适配的话) - 把
iOS 5,6、iOS 7-9、iOS 8,9这几个版本的复选框都勾上,对应你配置的各个尺寸资源组,别漏勾任何一个 - 逐个检查每个尺寸组的图片:有没有导错、尺寸是不是完全符合要求,比如Retina HD 5.5必须是
1242x2208,不能用1080x1920
二、针对性修复各机型的问题
1. iPhone 5s完全不显示启动屏
iPhone 5s属于iOS 7及以后的Retina 4寸设备,对应尺寸是640x1136。你已经在iOS 7-9组里配置了这个尺寸,但可能踩了这两个坑:
- 检查这个组里的
Retina 4图片是不是真的是640x1136,有没有不小心导成了其他尺寸(比如320x480) - 看看你的项目Deployment Target是不是低于iOS 7?如果是,5s可能会 fallback 到iOS 5,6的组,但iOS 5,6的Retina 4是给iPhone 5的,5s其实属于iOS 7+,所以要么把Deployment Target改成≥7,要么在iOS 5,6组也保留Retina 4的资源
2. iPhone 7 Plus/6s Plus/6s启动屏尺寸不对
这些机型的问题大概率是缩放逻辑或者资源匹配错了:
- 5.5寸的Plus系列对应
Retina HD 5.5的1242x2208图片,这个是@3x的资源,系统会自动缩放到设备实际的1080x1920分辨率,如果你直接用1080x1920的图,就会出现拉伸或者显示不全的问题 - 6s是4.7寸设备,对应
Retina HD 4.7的750x1334(@2x),检查你在iOS 8,9组里的这个尺寸资源是不是正确,有没有和iOS 7-9组的2x资源(640x960)搞混 - 另外,要确保
iOS 8,9组的资源是专门给这些较新机型的,别和旧组的资源重复或者冲突
三、更省心的替代方案(强烈推荐)
其实从iOS 8开始,苹果就更推荐用LaunchScreen.storyboard来做启动屏,它是自适应的,不用给每个机型准备不同尺寸的图:
- 删掉Assets.xcassets里的Launch Image
- 在项目的General设置里,把
Launch Screen File设置成你的LaunchScreen.storyboard - 在storyboard里加个UIImageView,设置约束让它铺满屏幕,图片用能自适应的资源(比如PDF矢量图,或者把图片的Content Mode设为Aspect Fill)
这种方式能一次性适配所有iPhone机型,再也不用一个个配置尺寸,也不会出现适配异常的问题啦
内容的提问来源于stack exchange,提问作者saharthana
相关产品推荐
相关产品推荐

