首页 > 解决方案 > 为什么在启动图像中选择“iOS 8.0 及更高版本”并为此新建图像后,iOS 应用程序的屏幕尺寸会发生变化?

问题描述

一开始应用在iPhone X和iPhone 11上下出现黑边我想让黑边消失,所以我尝试在mainViewController.xib中选择“Use Safe Area Layout Guides”,还是不行.

然后我尝试在 mainViewController 中的 viewdidLoad 中更改视图大小或视图锚点,所有这些动作都不起作用。最后,当我打开 images.xcassets 并选择 Launch Image -> Show the Attributes inspector -> iOS 8.0 and later -> iPhone -> Portrait。然后xcode上出现了三个block,分别是iPhone Xs Max、iPhone XR、iPhone X/ iPhone Xs。我根据分辨率用图片填充这些块。魔法!当我重建应用程序时,黑边消失了。 但为什么!?

我使用 xcode 11.3.1,并使用 iPhone 11 Pro() 的模拟器

标签: iosobjective-ciphonexcode

解决方案


如果应用程序不包含新设备屏幕尺寸的启动图像,则 iOS 假定应用程序是在这些设备发布之前编写的,并将可用屏幕区域减少到旧设备的可用屏幕区域作为向后兼容的解决方案。

当您包含所有启动图像大小时,此向后兼容性模式被禁用。

但是,您应该采用启动故事板,而不是启动图像,因为这样可以更轻松地支持所有屏幕尺寸,并且 Apple 从 7 月起将要求这样做。


推荐阅读