为什么 iPhone 8 屏幕尺寸报告为 320x480?

Why is iPhone 8 screen size reported as 320x480?

我继承了一个为 iPhone 和 iPad 使用单独故事板的应用程序。两者都不使用自动布局。在 viewDidLoad() 中,我记录了 UIScreen.main.bounds 的值。

对于 any iPhone(5 秒到 X),记录的大小为 320x480。这在 viewDidLayoutSubviews().

之后不会改变

当我从头开始创建应用时,我得到了预期的大小(例如,iPhone 6 至 8 为 375x667)。

我的二手应用程序有什么不同之处,它使屏幕尺寸统一为 1x iPhones 的古老值?

请注意,这与 view 调整大小无关 - 这是我们正在谈论的 screen。同样,屏幕比例没有明显的作用。

当您创建一个新项目时,如果它带有启动图像的故事板,则会自动检测大小..

但是,对于使用图像资源的旧项目,您需要提供启动屏幕的尺寸。 IE:"Default" 正确屏幕尺寸的图像,按照:

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 - 默认 667h@2x.png