使用Auto Scale的竖屏iPhone App如何在iPhone X实现全屏?
解决方案:让使用Auto Scale的旧版App在iPhone X上全屏显示
没问题,这事儿完全可以搞定!你之前靠命名式启动图让旧机型全屏的思路是对的,要适配iPhone X,核心就是让系统知道你的App支持它的新屏幕比例,具体可以按下面两种方式操作:
方式一:继续使用命名式启动图(适配你的现有流程)
既然你习惯了不把启动图放进资源目录、不用启动故事板的方式,那只要添加对应iPhone X系列的启动图就行:
- 为iPhone X/XS添加启动图:命名为
Default-812h@3x.png,尺寸是1125×2436像素 - 如果还要兼容iPhone XR/XS Max,再补充:
Default-896h@2x.png(XR用,尺寸828×1792)Default-896h@3x.png(XS Max用,尺寸1242×2688)
- 把这些启动图直接放在项目根目录,和你之前的
Default-568h@1/2/3.png放在一起,不用放进Assets.xcassets
方式二:改用启动故事板(更现代的适配方式)
如果你愿意调整一下流程,启动故事板是一劳永逸的方案,适配所有新老机型:
- 创建一个
Launch Screen.storyboard,在里面添加一个全屏的视图(不需要复杂约束,因为你用Auto Scale,只要让视图占满屏幕就行) - 打开项目的「General」设置,在「App Icons and Launch Images」里,把「Launch Screen File」选择为你刚创建的故事板
- 这种方式下,你可以移除之前所有命名的启动图,系统会自动根据机型生成适配的启动画面
额外注意事项
- 检查你的
Info.plist:如果里面有UILaunchImages数组,要把新添加的启动图信息补充进去;如果用启动故事板,直接移除这个数组就行 - 确认你的Auto Scale逻辑:因为你用的是Auto Scale而非Auto Layout,要保证代码里的布局是基于屏幕
bounds来计算的,而不是硬编码旧机型的尺寸(比如320×568),这样内容才能自动适配iPhone X的全屏
只要完成上面的步骤,你的App就会识别iPhone X的全面屏,不再进入信箱模式,而是正常全屏显示啦!
内容的提问来源于stack exchange,提问作者user2596590
相关产品推荐
相关产品推荐

