【发布时间】:2015-04-17 19:55:09
【问题描述】:
我只是偶然发现了一些非常奇怪和莫名其妙的东西。
我在客户端应用中有代码,可以根据屏幕尺寸加载不同的图像。
我有使用当前屏幕来确定屏幕大小的代码。
在我的 iPhone 6(实际设备,不是模拟器)上,它显示的屏幕尺寸为 320x568,这是 iPhone 5 屏幕的尺寸。
如果我在 iPhone 6 sim 上运行完全相同的代码,屏幕尺寸会正确报告为 375x667。
为了去除所有无关的细节,我刚刚使用 Xcode 单视图项目模板创建了一个新项目。我使用了 Objective-C,以防它是一个 Swift 问题。我向 Xcode 创建的视图控制器添加了一个 viewWillAppear: 方法,如下所示:
- (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 上报告的屏幕尺寸是错误的。
我错过了什么?!?
【问题讨论】:
-
“在我的 iPhone 6(实际设备,不是模拟器)上,它显示的屏幕尺寸为 320x568,这是 iPhone 5 屏幕的尺寸。”听起来你的 iPhone 6 已经“放大”了。
-
我找到了,你是对的。问题是它是如何达到这个设置的?我什至不知道它的存在。
-
不,问题不在于它是如何达到该设置的。问题是“我错过了什么”,我回答了这个问题。 :))))) 当然,好消息是您现在可以拥有一大堆您甚至不知道自己丢失的额外像素。基本上你一直在随身携带超大号 iPhone 5。
-
@matt,老实说,直到你提到它,我才看到这个设置。我不知道它是如何设置的。很好奇。
标签: ios objective-c ios8 screen-size iphone-6