为什么 iOS 应用程序的屏幕尺寸在我 select "iOS 8.0 and Later" 中的启动图像并为其新建图像后会发生变化?
why iOS app's screen size can change after I select "iOS 8.0 and Later" in Launch Image and new the image for that?
起初,应用程序在 iPhone X 和 iPhone 11 的顶部和底部出现黑边
我想让黑边消失,所以我在mainViewController.xib中尝试select"Use Safe Area Layout Guides",但是没有用。
然后我尝试在 mainViewController 的 viewdidLoad 中更改视图大小或视图锚点,但所有这些移动都不起作用。
最后,当我打开 images.xcassets 和 select 启动图像 -> 显示属性检查器 -> iOS 8.0 及更高版本 -> iPhone -> 肖像。然后xcode上出现了三个block,分别是iPhoneXs Max,iPhoneXR,iPhoneX/iPhoneXs。
我根据分辨率用图片填充这些块。
魔法!当我重建应用程序时,黑边消失了。
但是为什么!?
我用的是xcode 11.3.1,用的是iPhone 11 Pro()
的模拟器
如果应用不包含适用于较新设备屏幕尺寸的启动图像,则 iOS 假定该应用是在这些设备发布之前编写的,并将可用屏幕区域减少到旧设备的屏幕区域作为向后-兼容性解决方案。
当您包含所有启动图像尺寸时,此向后兼容性模式将被停用。
但是,您应该采用启动故事板,而不是启动图像,因为这样可以更轻松地支持所有屏幕尺寸,并且 Apple 从 7 月开始要求。
起初,应用程序在 iPhone X 和 iPhone 11 的顶部和底部出现黑边 我想让黑边消失,所以我在mainViewController.xib中尝试select"Use Safe Area Layout Guides",但是没有用。
然后我尝试在 mainViewController 的 viewdidLoad 中更改视图大小或视图锚点,但所有这些移动都不起作用。 最后,当我打开 images.xcassets 和 select 启动图像 -> 显示属性检查器 -> iOS 8.0 及更高版本 -> iPhone -> 肖像。然后xcode上出现了三个block,分别是iPhoneXs Max,iPhoneXR,iPhoneX/iPhoneXs。 我根据分辨率用图片填充这些块。 魔法!当我重建应用程序时,黑边消失了。 但是为什么!?
我用的是xcode 11.3.1,用的是iPhone 11 Pro()
的模拟器如果应用不包含适用于较新设备屏幕尺寸的启动图像,则 iOS 假定该应用是在这些设备发布之前编写的,并将可用屏幕区域减少到旧设备的屏幕区域作为向后-兼容性解决方案。
当您包含所有启动图像尺寸时,此向后兼容性模式将被停用。
但是,您应该采用启动故事板,而不是启动图像,因为这样可以更轻松地支持所有屏幕尺寸,并且 Apple 从 7 月开始要求。