可能重复:
如何处理 iPhone 5 的屏幕尺寸?
因此,随着今天 iPhone 5 的发布和更大的屏幕高度,我们如何在我们的应用程序中适应不同 iPhone 变体的不同屏幕尺寸。我知道没有为 iPhone 5 更新的应用程序将被“装箱”,但是向后兼容性呢?
有没有办法检查应用程序是否在 iPhone 3、4 或 5 上运行?
可能重复:
如何处理 iPhone 5 的屏幕尺寸?
因此,随着今天 iPhone 5 的发布和更大的屏幕高度,我们如何在我们的应用程序中适应不同 iPhone 变体的不同屏幕尺寸。我知道没有为 iPhone 5 更新的应用程序将被“装箱”,但是向后兼容性呢?
有没有办法检查应用程序是否在 iPhone 3、4 或 5 上运行?
你通常不需要那个,因为检查硬件不是正确的方法。
如果你需要在你的应用程序中根据屏幕尺寸做出决定,比如适应你的 UI 的屏幕尺寸,你应该……测试屏幕尺寸,而不是在硬件上做一些条件。始终测试真正需要的东西。
用于[UIScreen mainScreen].bounds
那个(你应该一直这样做)。请注意,即使在 iPhone 5 之前,人们也可以将其 iPhone 插入视频投影仪或外部屏幕,并在分辨率与 iPhone 不同的屏幕上显示其应用程序。这就是为什么我希望你永远不要在你的代码中使用幻数(如果你这样做了,你知道为什么它现在很糟糕;))并且已经在使用常量或者在运行时询问你的屏幕大小。
无论如何,为了适应不同的屏幕尺寸,如果您在视图中正确配置了自动调整掩码,您的应用程序将自动调整大小。您只需要提供一个Default-h568@2x.png
启动图像,您的应用程序就会占据 4 英寸屏幕的全尺寸。
此外,从 iOS6 开始,您将能够使用AutoLayout对视图进行更精细的约束布局。请参阅详细解释它的 WWDC'12 视频会议。
查看UIDevice-Hardware扩展,它甚至最近更新以添加对 iPhone 5 的支持。