我刚刚重新开始了我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,所以我不太明白为什么我的应用程序会被放置在这种奇怪的遗留模式或其他什么东西中。
发布于 2016-11-20 15:04:00
你在这里很困惑,从这里你得到了正确的界限。
CGRect rect = [[UIScreen mainScreen] bounds];1536x2048是iPad Air 2的分辨率,而不是屏幕大小,即iPad Air 2支持@2x分辨率。
如果您将检查iPad Air 2的边界,那么您将得到768x1024
https://stackoverflow.com/questions/40705352
复制相似问题