我遇到了一个奇怪的问题。我使用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分辨率?我该如何解决?我不想仅为iPad测试创建单独的xibs
,但我想在其上测试我的应用程序,以便所有UI元素都适合屏幕。
希望得到帮助。
答案 0 :(得分:14)
没错。它正在做正确的事情。所有对尺寸的引用都是以点为单位,而不是像素。当你获得界限时,无论是否是视网膜,所有3.5英寸屏幕上都是320x480。在任何3.5英寸视网膜设备上试用。您将获得相同的日志输出。
在运行仅限iPhone的应用程序时,iPad不会模拟4英寸设备。它始终是3.5英寸iPhone兼容模式。
因此,看到320x480是正确的尺寸。
这样想。视网膜iPad将显示一个仅限iPhone的应用程序,就像它在3.5英寸视网膜iPhone上运行一样。非视网膜iPad将显示一个仅限iPhone的应用程序,就像它运行在3.5英寸非视网膜iPhone上一样。