为什么我的iphone设备和模拟器有不同的屏幕分辨率?

时间:2011-01-04 00:41:13

标签: ios-simulator quartz-2d

我使用itouch 4G有我的设备,我使用模拟器-4.2 我将绘制一个矩形作为例子。我使用Quartz-2d绘制

- (void)drawRect:(CGRect)rect { 
// Get a graphics context, saving its state
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);

// Reset the transformation
CGAffineTransform t0 = CGContextGetCTM(context);
t0 = CGAffineTransformInvert(t0);
CGContextConcatCTM(context,t0);

// Draw a green rectangle
CGContextBeginPath(context);
CGContextSetRGBFillColor(context, 0,1,0,1);
CGContextAddRect(context, CGRectMake(0,0,320,480));
CGContextClosePath(context);
CGContextDrawPath(context,kCGPathFill);

CGContextRestoreGState(context);

}

我在模拟器中运行它,整个屏幕变为绿色,然后我在我的设备上运行,只有屏幕的四分之一变为绿色,为了使我的设备上的整个屏幕变绿,我必须画一个更大的矩形

  CGContextAddRect(context, CGRectMake(0,0,640,960));

看起来我的设备的分辨率是模拟器的两倍,
我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

iPhone上的Retina显示器两倍上一代手机的分辨率。您的模拟器可能正在使用“iPhone”设备而不是“iPhone4”设备运行。您可以切换Hardware | Device菜单。

您可以使用

获取要渲染的当前视图比例
[self.layer contentsScale]

然后相应地缩放尺寸。