2011-01-04 4 views
0

ich benutze itouch 4G hat mein Gerät und ich benutze Simulator-4.2
Ich werde nur ein Rechteck als ein Beispiel zeichnen. Ich benutze Quarz-2dWarum hat mein iPhone-Gerät und Simulator unterschiedliche Bildschirmauflösung?

- (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); 

}

ich laufe es im Simulator, der gesamte Bildschirm wird grün zu zeichnen, dann laufe ich das auf meinem Gerät, nur das Viertel des Bildschirms wird grün, in um den gesamten Bildschirm grün auf meinem Gerät zu machen, muss ich ein größeres Rechteck wie mein Gerät

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

scheinen zeichnen zweimal Auflösung als der Simulator hat,
wie kann ich dieses Problem beheben?

Antwort

2

Das Retina-Display auf dem iPhone ist zweimal die Auflösung der vorherigen Generation von Telefonen. Ihr Simulator läuft wahrscheinlich mit dem iPhone-Gerät und nicht mit dem iPhone4-Gerät. Sie können im Menü Hardware | Device wechseln.

Sie können die aktuelle Skala von Ansichten Sie Rendern mit

[self.layer contentsScale] 

dann entsprechend Ihren Dimensionen skalieren.

+0

vielen Dank – Lingyong