【问题标题】:Screen size is wrong on iPhone 6/iOS 8.3? [duplicate]iPhone 6/iOS 8.3 的屏幕尺寸错误? [复制]
【发布时间】: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


【解决方案1】:

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

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

在这种模式下,iPhone 6 实际上认为它是用于显示目的的 iPhone 5(并将 iPhone 5 大小的屏幕环境传达给所有应用程序)。

【讨论】:

  • iPhone 6 Plus 的缩放模式更加极致;它认为这是一部 iPhone 6,它严重改变了旋转时发生的情况(因为我们得到了一组不同的尺寸等级),它报告的是 2x 分辨率而不是 3x 分辨率
【解决方案2】:

您需要在项目中添加启动屏幕 iPhone 6

【讨论】:

    猜你喜欢
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多