我正在尝试使用视网膜分辨率(2048x1536)构建我的应用程序,但使用了:

NSLog(@"resolution from xcode %f %f", [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);

我总是得到1024x768分辨率。任何想法如何设置视网膜分辨率?

最佳答案

您获得的是以磅为单位的值,而不是像素。
Apple's docs:

点数与像素点
在iOS中,您在绘图代码中指定的坐标与基础设备的像素之间存在区别。当使用诸如Quartz,UIKit和Core Animation之类的本机绘图技术时,您可以使用逻辑坐标空间指定坐标值,该逻辑坐标空间以磅为单位测量距离。该逻辑坐标系与系统框架用来管理屏幕上像素的设备坐标空间解耦。系统会自动将逻辑坐标空间中的点映射到设备坐标空间中的像素,但是这种映射并不总是一对一的。此行为导致一个重要的事实,您应该始终记住:
一个点不一定对应于屏幕上的一个像素。
使用点(和逻辑坐标系)的目的是提供与设备无关的一致的输出大小。点的实际大小无关紧要。点的目的是提供一个相对一致的比例,您可以在代码中使用它来指定视图和渲染内容的大小和位置。如何将点实际映射到像素是系统框架处理的细节。例如,在具有高分辨率屏幕的设备上,一点宽的线实际上可能会导致屏幕上两像素宽的线。结果是,如果您在两个相似的设备上绘制相同的内容,而其中只有一个具有高分辨率的屏幕,则两个设备上的内容看起来大约相同。

关于ios - 如何为Retina设置Xcode项目?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11342081/

10-16 23:33