使用LaunchScreen.storyboard在Xamarin.iOS中添加启动图遇问题求助
解决Xamarin.iOS中LaunchScreen.Storyboard适配iPhoneX启动图不显示的问题
我之前也踩过一模一样的坑,给你几个亲测有效的步骤,一步步来应该能搞定:
1. 确认LaunchScreen.Storyboard的基础配置
- 先检查项目属性:右键项目→属性→iOS应用程序→启动屏幕,确保已经选中
LaunchScreen.Storyboard。 - 打开Storyboard,给根视图添加启动图的两种方式:
- 直接选中根视图的View,在属性面板里设置Background为你要的启动图资源;
- 拖入
UIImageView铺满整个屏幕,设置上下左右全约束对齐父视图,然后在属性里选择Images.xcassets中的资源,记得把缩放模式改成Aspect Fill或者Scale To Fill,避免变形。
2. 手动配置Images.xcassets适配iPhoneX
Xamarin里确实没有现成的iPhoneX LaunchImage占位符,但可以手动编辑Contents.json来补全:
- 在Images.xcassets里右键新建Image Set,命名比如
LaunchScreenImage; - 右键这个Image Set→Show in Finder,找到
Contents.json用文本编辑器打开,替换成以下配置(注意替换成你的图片文件名,iPhoneX启动图尺寸是1125×2436像素):
{ "images" : [ { "idiom" : "universal", "filename" : "LaunchBase.png", "scale" : "1x" }, { "idiom" : "universal", "filename" : "LaunchBase@2x.png", "scale" : "2x" }, { "idiom" : "universal", "filename" : "LaunchBase@3x.png", "scale" : "3x" }, { "idiom" : "iphone", "filename" : "LaunchiPhoneX.png", "subtype" : "2436h", "scale" : "3x" } ], "info" : { "version" : 1, "author" : "xcode" } }
- 把对应尺寸的图片放到这个Image Set的文件夹里,文件名要和json里的完全一致。
3. 清理缓存并重建项目
这一步经常被忽略,但很多时候就是缓存搞的鬼:
- 右键项目→Clean,然后Rebuild整个解决方案;
- 模拟器上先删除已安装的APP,重启模拟器再部署;真机上卸载APP后重新安装。
4. 检查Info.plist的冲突设置
打开Info.plist,确认这两点:
- 如果存在
UILaunchImages字段,直接删除(用LaunchScreen.Storyboard时,这个旧配置会干扰启动图显示); - 确认
UILaunchStoryboardName的值是LaunchScreen,没有拼写错误。
要是还不行,可以先把Storyboard里的启动图换成纯色背景测试,如果纯色能显示,那就是图片资源的命名或尺寸有问题,再回头检查Images.xcassets的配置就行。
内容的提问来源于stack exchange,提问作者DJB
相关产品推荐
相关产品推荐

