UIScreen主屏幕边界在iPad Air 2

时间:2016-11-20 14:42:19

标签: ios ipad

我刚刚重新开始了4年前我上次工作的项目。那时候,我使用的是Xcode 3.2和iPad 2.现在我使用的是Xcode 8.1和iPad Air 2.

我可以使用Xcode 8.1构建和运行该项目,但是在使用

获取屏幕大小时会发生一些奇怪的事情
CGRect rect = [[UIScreen mainScreen] bounds];

它在iPad Air 2上返回768x1024像素,这是不正确的,因为iPad Air 2的原始分辨率为1536x2048。 768x1024是我的旧设备iPad 2的分辨率。

此外,bounds不仅返回了错误的维度,我还可以清楚地看到我绘制到我视图中的图形已经升级。

所以我的假设是我的项目在某种传统/兼容模式下运行,试图让应用程序相信它仍然在iPad 2上运行,分辨率为768x1024而不是两倍大的分辨率。可能是这种情况还是对这种现象的解释是什么?

那我怎样才能使它正常工作?即如何让bounds返回1536x2048并停止自动升级?我已经查看了Xcode中的各种选项,但我没有看到任何可以解释我在这里看到的行为的内容。我的部署目标设置为iOS 10.1,所以我真的不明白为什么我的应用程序被放入这个奇怪的遗留模式或者它是什么......

1 个答案:

答案 0 :(得分:1)

你在这里感到困惑,你从这里得到了正确的界限

var nums = prompt ("Please input a number")

var evens = [];

var evenNumbers = function(nums) {
for (var i = 0; i <= nums; i++) {
    if (i % 2 === 0)
    {
      evens.push(i)
    }
  }
}
evenNumbers(nums);
alert(evens);

CGRect rect = [[UIScreen mainScreen] bounds]; 是iPad Air 2的分辨率,而不是它的屏幕尺寸,即iPad Air 2支持@ 2x分辨率。

如果您要检查iPad Air 2的界限,那么您将获得1536x2048

相关问题