Iphone的视网膜显示在模拟器中

时间:2010-07-18 16:22:53

标签: iphone ios4 points

我对如何使用模拟器构建需要支持iphone 4更高分辨率的应用程序感到困惑。

我会选择iphone4模拟器来运行应用程序,[[UIScreen mainScreen] bounds]会给我960x640,但它仍然给我旧分辨率(480x320)?

虽然iphone4模拟器在我的屏幕上显示为巨型手机,但它似乎仍然只包含480x320像素。例如,当我想在第700行显示某些内容时,它只会在屏幕上显示?

感谢您提供任何意见。

2 个答案:

答案 0 :(得分:8)

UIScreen有一个新的scale方法。将bounds.size乘以比例以获取像素。您可以将未缩放的值视为点或虚拟像素。

请注意,自至少3.2以来,UIScreen已经有了一个缩放方法,但是自4.0以来它才被记录,所以respondsToSelector会欺骗你。即使我想了解UIScreen,我也会查看UIImage的规模。

UIScreen *mainScreen = [UIScreen mainScreen];
CGFloat scale = [mainScreen scale];
CGRect bounds = [mainScreen bounds];
CGRect pixels = bounds;

if ( scale > 0 ) {
    pixels.origin.x *= scale;
    pixels.origin.y *= scale;
    pixels.size.width *= scale;
    pixels.size.height *= scale;
}

答案 1 :(得分:4)

关于你关于决议的第二个问题,也许这会对你有所帮助 从iOS4及更高版本开始,有像素,点和比例因子。

[[UIScreen mainScreen] bounds] 

bounds will return points(480x320)不是像素(960x640) iOS4 Application Programming Guide(点数与像素数):

  

在iOS 4及更高版本的UIScreen中,   UIView,UIImage和CALayer类   揭示一个告诉你的比例因子   点与之间的关系   该特定对象的像素。   在iOS 4之前,这个比例因子是   假设是1.0,但在iOS 4和   以后它可能是1.0或2.0,   取决于分辨率   底层设备。在将来,   其他比例因子也可能   可能的。