我使用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));
看起来我的设备的分辨率是模拟器的两倍,
我该如何解决这个问题?
答案 0 :(得分:2)
iPhone上的Retina显示器两倍上一代手机的分辨率。您的模拟器可能正在使用“iPhone”设备而不是“iPhone4”设备运行。您可以切换Hardware | Device
菜单。
您可以使用
获取要渲染的当前视图比例[self.layer contentsScale]
然后相应地缩放尺寸。