4

我遇到了一个奇怪的问题。我开发了一个针对具有 Retina 3.5 和 4 的 iPhone 设备系列的应用程序。我一直使用 iPhone 5 模拟器来测试所有 UI 和功能,一切都很好,但我知道我必须测试推送通知。我有 iPad 4(型号 MD522ZP/A)作为 iOS 6 设备。当我在它上面运行我的应用程序时,所有的 UI 布局都出错了。最奇怪的问题是当我尝试使用以下代码检查显示分辨率时:

NSLog(@"RESOLUTION = %@", NSStringFromCGSize([UIScreen mainScreen].bounds.size));

我得到了这个:RESOLUTION = {320, 480}。但它是 iPhone 3 分辨率!为什么 iPad 没有使用 Retina 3.5/4 分辨率?我该如何解决?我不想单独创建xibs仅为 iPad 测试单独创建,但我想在其上测试我的应用程序,以便所有 UI 元素都适合屏幕。

希望得到帮助。

4

1 回答 1

14

这没有错。它正在做完全正确的事情。所有对大小的引用都以点为单位,而不是像素。当您获得边界时,无论是否为视网膜,所有 3.5 英寸屏幕上的分辨率都是 320x480。在任何 3.5 英寸视网膜设备上尝试一下。您将获得相同的日志输出。

运行仅限 iPhone 的应用程序时,iPad 不会模拟 4" 设备。它将始终是 3.5" iPhone 兼容模式。

所以看到 320x480 是预期的正确尺寸。

这样想吧。视网膜 iPad 将显示仅 iPhone 应用程序,就像它在 3.5 英寸视网膜 iPhone 上运行一样。非视网膜 iPad 将显示仅 iPhone 应用程序,就像它在 3.5 英寸非视网膜 iPhone 上运行一样。

于 2013-08-04T18:49:36.373 回答