.NET MAUI iOS启动屏深色模式图片不显示,求解决办法
先检查图片集(Imageset)的配置细节:
打开Images.xcassets里的目标图片集,确认Appearance选项设为「Any, Dark」,并且正确上传了对应亮色(Any)和暗色(Dark)版本的图片(命名要对应,比如logo.png和logo~dark.png)。同时把图片的Render As设为「Original Image」,避免系统自动给图片加 tint 导致颜色异常。核对LaunchScreen.storyboard的图片控件设置:
选中storyboard里的图片控件,确认Image属性正确关联了目标图片集,不要手动指定单个图片文件。另外检查Tint属性是否为默认值(不要设置固定颜色),控件的显示模式(Mode)选「Aspect Fit」这类不破坏图片比例的选项。确认项目iOS版本和配置:
确保项目的iOS Deployment Target不低于iOS 13(明暗模式从iOS 13开始支持),和你之前的Xamarin.Forms项目保持一致。同时检查Info.plist里有没有UIUserInterfaceStyle键,如果有且被设为Light,直接删除这个键值对,让应用跟随系统外观设置。清理缓存并重建项目:
删掉项目的bin和obj文件夹,清空iOS模拟器的缓存(或者重启模拟器),然后重新编译部署。MAUI的资源缓存有时候会导致原生资源不更新,这是常见的坑。检查MAUI项目的资源构建配置:
打开Platforms/iOS/[你的项目名].csproj,确认图片集所在的Images.xcassets的Build Action是BundleResource,对比Xamarin.Forms项目的csproj配置,确保资源打包方式一致。排查启动代码的强制设置:
检查Platforms/iOS/AppDelegate.cs或者App.xaml.cs里有没有代码强制设置应用外观,比如UIApplication.SharedApplication.KeyWindow?.OverrideUserInterfaceStyle = UIUserInterfaceStyle.Light,如果有就注释掉,让系统自动处理启动屏的外观切换。注意测试方式:
切换系统明暗模式后,必须完全退出应用(从后台划掉)再冷启动,热启动不会重新加载启动屏,所以看不到切换效果。
内容的提问来源于stack exchange,提问作者Niels

