5 Stimmen

Iphones Retina-Display im Simulator

Ich bin ein bisschen verwirrt darüber, wie man den Simulator verwenden soll, um Anwendungen zu erstellen, die die neue höhere Auflösung des iPhone 4 unterstützen müssen.

Ich hätte erwartet, dass beim Auswählen des iPhone 4 Simulators, um die App auszuführen, [[UIScreen mainScreen] bounds] mir 960x640 zurückgeben würde, aber stattdessen gibt es mir immer noch die alte Auflösung (480x320) ?

Obwohl der iPhone 4 Simulator auf meinem Bildschirm wie ein riesiges Telefon erscheint, besteht er anscheinend immer noch aus nur 480x320 Pixeln. Wenn ich beispielsweise etwas in Zeile 700 anzeigen möchte, wird es einfach außerhalb des Bildschirms liegen ?

Vielen Dank für jegliche Hilfe diesbezüglich.

8voto

drawnonward Punkte 52834

UIScreen hat eine neue scale Methode. Multiplizieren Sie die bounds.size mit dem scale, um die Pixel zu erhalten. Sie können von unskalierten Werten als Punkten oder virtuellen Pixeln ausgehen.

Beachten Sie, dass UIScreen seit mindestens 3.2 eine scale Methode hat, aber erst seit 4.0 dokumentiert ist, daher wird respondsToSelector Sie täuschen. Ich überprüfe UIImage auf scale, auch wenn ich etwas über UIScreen wissen möchte.

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;
}

4voto

Kb. Punkte 6960

Bezüglich Ihrer zweiten Frage zur Auflösung könnte Ihnen dies vielleicht helfen.
Ab iOS4 gibt es Pixel, Punkte und Skalafaktoren.

[[UIScreen mainScreen] bounds] 

bounds gibt Punkte zurück (480x320) nicht Pixel (960x640).
iOS4 Application Programming Guide (Punkte gegenüber Pixel):

In iOS 4 und später geben die Klassen UIScreen, UIView, UIImage und CALayer einen Skalafaktor zurück, der Ihnen die Beziehung zwischen Punkten und Pixeln für dieses bestimmte Objekt sagt. Vor iOS 4 wurde angenommen, dass dieser Skalafaktor 1,0 beträgt, aber in iOS 4 und später kann er entweder 1,0 oder 2,0 sein, abhängig von der Auflösung des zugrunde liegenden Geräts. In Zukunft sind auch andere Skalafaktoren möglich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X