iPhone 6 / iOS 8.3上的屏幕尺寸有误吗?

时间:2015-04-17 19:55:09

标签: ios objective-c ios8 screen-size iphone-6

我偶然发现了一些非常奇怪和令人困惑的事情。

我在客户端应用程序中有代码,可根据屏幕大小加载不同的图像。

我的代码使用当前屏幕来确定屏幕尺寸。

在我的iPhone 6(实际设备,而不是模拟器)上,它显示的屏幕尺寸为320x568,这是iPhone 5屏幕的大小。

如果我在iPhone 6 SIM卡上运行完全相同的代码,则会以375x667正确报告屏幕大小。

为了去除所有无关的细节,我刚刚使用Xcode单视图项目模板创建了一个新项目。我使用了Objective-C,以防它是一个Swift问题。我将一个viewWillAppear:方法添加到Xcode创建的视图控制器中,如下所示:

- (void) viewWillAppear:(BOOL)animated
{
  [super viewWillAppear:animated];
  UIScreen *screen = [UIScreen mainScreen];
  CGSize screenSize = screen.bounds.size;
  _label.text =[NSString stringWithFormat:
                @"Screen size = %@",
                NSStringFromCGSize(screenSize)];
}

Xcode模板应用程序设置了info.plist" UILaunchStoryboardName" " LaunchScreen"的值,它实际上是指一个名为" LaunchScreen.xib"的XIB文件。该XIB在发布时显示在所有设备上。但是,iPhone 6上报告的屏幕尺寸是错误的。

我错过了什么?!?

2 个答案:

答案 0 :(得分:3)

我猜你的iPhone 6处于缩放模式,如下所述:

https://support.apple.com/en-us/HT203073

在该模式下,iPhone 6有效地认为它是用于显示目的的iPhone 5(并向所有应用传达iPhone 5大小的屏幕环境)。

答案 1 :(得分:1)

您需要在项目中添加启动画面IPhone 6