我继承了一个应用程序,该应用程序为 iPhone 和 iPad 使用单独的 Storyboard。两者都不使用自动布局。在 viewDidLoad()
中,我记录了 UIScreen.main.bounds
的值。
对于 任何 iPhone(5s 到 X),记录的大小为 320x480。这在 viewDidLayoutSubviews()
之后不会改变。
当我从头开始创建应用程序时,我得到了预期的大小(例如 iPhone 6 到 8 的 375x667)。
我的二手应用程序有什么不同之处可以使屏幕尺寸统一为 1x iPhone 的古老值?
请注意,这与 View 调整大小无关——这是我们正在谈论的屏幕。同样,屏幕比例没有明显的作用。
最佳答案
当您创建一个新项目时,如果它带有启动图像的 Storyboard,则会自动检测大小。
但是,对于使用图像资源的旧项目,您需要提供启动屏幕的尺寸。 IE:屏幕正确尺寸的“默认”图像按照:
https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/launch-screen/
静态启动屏幕图像。名称应为:“Default-XXXh@ResY.png”
其中 XXX 是高度,Y 是分辨率。示例:
- iPhone 6 Plus - 1242px x 2208px - Default-736h@3x.png
- iPhone 6 - 750px x 1334px - Default-667h@2x.png
关于ios - 为什么 iPhone 8 屏幕尺寸报告为 320x480?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49501363/