Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIScreen主屏幕返回iPad2';iPad Air 2上的s界限_Ios_Ipad - Fatal编程技术网

Ios UIScreen主屏幕返回iPad2';iPad Air 2上的s界限

Ios UIScreen主屏幕返回iPad2';iPad Air 2上的s界限,ios,ipad,Ios,Ipad,我刚刚重新开始一个项目的工作,我上一次工作是在4年前。当时,我使用的是Xcode 3.2和iPad2。现在我使用的是Xcode 8.1和iPad Air 2 我可以用Xcode 8.1构建和运行这个项目,但是当使用Xcode 8.1获得屏幕大小时,出现了一些奇怪的情况 CGRect rect = [[UIScreen mainScreen] bounds]; 在我的iPad Air 2上,它返回768x1024像素,这不可能是真的,因为iPad Air 2的本机分辨率是1536x2048。76

我刚刚重新开始一个项目的工作,我上一次工作是在4年前。当时,我使用的是Xcode 3.2和iPad2。现在我使用的是Xcode 8.1和iPad Air 2

我可以用Xcode 8.1构建和运行这个项目,但是当使用Xcode 8.1获得屏幕大小时,出现了一些奇怪的情况

CGRect rect = [[UIScreen mainScreen] bounds];
在我的iPad Air 2上,它返回768x1024像素,这不可能是真的,因为iPad Air 2的本机分辨率是1536x2048。768x1024是我的旧设备iPad2的分辨率

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

因此,我的假设是,我的项目运行在某种遗留/兼容模式下,试图让应用程序相信它仍然以768x1024的分辨率运行在iPad2上,而不是两倍大的分辨率。这是真的吗?或者对这种现象的解释是什么


那么我怎样才能让它正常工作呢?i、 e.如何获取
bounds
以返回1536x2048并停止自动放大?我已经浏览了Xcode中的各种选项,但是我没有看到任何可以解释我在这里看到的行为的东西。我的部署目标设置为iOS 10.1,所以我真的不明白为什么我的应用程序会被置于这种奇怪的传统模式或其他模式…

您在这里感到困惑,您从这里得到了正确的边界

CGRect rect = [[UIScreen mainScreen] bounds];
1536x2048
是iPad Air 2的分辨率,而不是其屏幕大小,即iPad Air 2支持@2x分辨率


如果您检查iPad Air 2的边界,您将得到
768x1024

这是像素与点之间的常见混淆。下面是另一个stackoverflow链接,详细介绍了这一点。“它返回768x1024像素”-不,它返回768x1024点。请阅读
ui屏幕边界
属性的文档。