iOS启动屏问题:iPhone 8仅显示UIImageView背景色
解决Launch Screen在iPhone 8上不显示图片的问题
嘿,我之前也踩过Launch Screen适配的坑,给你几个实用的排查和解决步骤,应该能搞定这个问题:
一、检查UIImageView的约束与内容模式
- 先确认UIImageView的约束是否适配全屏幕:iPhone 5S是4英寸,iPhone 8是4.7英寸,如果给UIImageView固定了宽高值,很可能在大尺寸屏幕上无法正常显示。建议给它添加leading、trailing、top、bottom四个约束,让它完全贴合父视图的边缘,这样不管屏幕尺寸怎么变都能自适应。
- 调整Content Mode:别用
Center或Top这类固定位置的模式,改成Aspect Fill(铺满视图并保持比例,可能裁剪边缘)或Aspect Fit(完整显示图片并保持比例),同时记得勾选Clip To Bounds选项,避免图片超出UIImageView的范围。
二、排查图片资源的问题
- 确认图片是否正确放入
Assets.xcassets:把图片拖进Assets后,要确保至少有@2x分辨率的版本(iPhone 5S和8都是@2x屏幕),如果有条件的话补充@1x和@3x版本,让系统能根据屏幕自动适配。 - 清理缓存:有时候Xcode的缓存会导致资源加载异常,试试用快捷键
Shift + Command + K清理Build Folder,然后删掉模拟器里的App,重新编译运行。
三、验证Launch Screen的项目配置
- 再次确认项目配置:进入项目的
Deployment Info界面,检查Launch Screen选项是否确实选中了你的LaunchScreen.storyboard,别不小心选错了文件。 - 检查Size Class:在LaunchScreen.storyboard中选中ViewController,确保它的Size Class设置为
wAny hAny,这是适配所有屏幕尺寸的基础配置。
四、终极测试:新建Launch Screen文件
如果上面的步骤都没用,建议新建一个空白的LaunchScreen.storyboard,只添加一个UIImageView,设置好约束和图片,然后把项目的Launch Screen File改成这个新文件。如果新文件能正常显示图片,说明原来的Launch Screen文件可能存在隐藏的约束冲突或配置错误,你可以逐步迁移原来的内容到新文件里排查问题。
内容的提问来源于stack exchange,提问作者Mercutio
相关产品推荐
相关产品推荐

