首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIScreen mainScreen界返回iPad Air 2的iPad 2界

UIScreen mainScreen界返回iPad Air 2的iPad 2界
EN

Stack Overflow用户
提问于 2016-11-20 14:42:19
回答 1查看 310关注 0票数 1

我刚刚重新开始了我4年前做过的一个项目。当时,我使用的是Xcode 3.2和iPad 2,现在我使用的是Xcode 8.1和iPad Air 2。

我可以用Xcode 8.1构建和运行这个项目,但是当使用

代码语言:javascript
复制
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,所以我不太明白为什么我的应用程序会被放置在这种奇怪的遗留模式或其他什么东西中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-20 15:04:00

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

代码语言:javascript
复制
CGRect rect = [[UIScreen mainScreen] bounds];

1536x2048是iPad Air 2的分辨率,而不是屏幕大小,即iPad Air 2支持@2x分辨率。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40705352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档