我偶然发现了一些非常奇怪和令人困惑的事情。
我在客户端应用程序中有代码,可根据屏幕大小加载不同的图像。
我的代码使用当前屏幕来确定屏幕尺寸。
在我的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上报告的屏幕尺寸是错误的。
我错过了什么?!?
答案 0 :(得分:3)
我猜你的iPhone 6处于缩放模式,如下所述:
https://support.apple.com/en-us/HT203073
在该模式下,iPhone 6有效地认为它是用于显示目的的iPhone 5(并向所有应用传达iPhone 5大小的屏幕环境)。
答案 1 :(得分:1)
您需要在项目中添加启动画面IPhone 6