我正在尝试使用视网膜分辨率(2048x1536)
构建我的应用程序,但使用:
NSLog(@"resolution from xcode %f %f", [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
我总是得到1024x768
分辨率。任何想法如何设置视网膜分辨率?
答案 0 :(得分:4)
你得到的是点数,而不是像素。 来自Apple's docs:
积分与像素
在iOS中,您在绘图代码中指定的坐标与底层设备的像素之间存在差异。使用Quartz,UIKit和Core Animation等原生绘图技术时,可以使用逻辑坐标空间指定坐标值,该坐标空间用于测量点的距离。该逻辑坐标系与系统框架用于管理屏幕上的像素的设备坐标空间分离。系统自动将逻辑坐标空间中的点映射到设备坐标空间中的像素,但此映射并不总是一对一的。这种行为导致了一个重要的事实,你应该永远记住:
一个点不一定对应于屏幕上的一个像素。
使用点(和逻辑坐标系)的目的是提供与设备无关的一致输出大小。点的实际大小是无关紧要的。点的目标是提供相对一致的比例,您可以在代码中使用它来指定视图和呈现内容的大小和位置。实际如何将点映射到像素是由系统框架处理的细节。例如,在具有高分辨率屏幕的设备上,一个点宽的线实际上可能导致屏幕上两个像素宽的线。结果是,如果您在两个类似的设备上绘制相同的内容,其中只有一个设备具有高分辨率屏幕,则两个设备上的内容大小大致相同。