Frage

So habe ich heute Landschafts Modus für meine Anwendung implementieren. Es ist eine OpenGL ES-Anwendung. Ich gedreht es 90 Grad. Das erste, was ich merke ist, dass das berührt nicht mehr. Der Grund dafür ist, dass der Anruf zu locationInView noch die Koordinaten geben, als ob die Anwendung im Portrait-Modus ist.

Wie gehen Menschen in der Regel mit dieser? Muss ich meine eigene Version von locationInView schreiben Berücksichtigung der Ausrichtung des Telefons zu nehmen? Oder gibt es einen besseren Weg?

War es hilfreich?

Lösung

Das ist, Standardverhalten. Ob das iPhone im Hoch- oder Quer ist die Bildschirmkoordinaten nicht ändern, so dass Sie für die in Ihrer App anpassen müssen.

Andere Tipps

Im Wesentlichen zwei Ansätze, die jeweils mit ihren eigenen Nachteilen / assets.

  1. Sie können Ihre GLview zu einem Viewcontroller anschließen und lassen Sie es Rotation Ereignisse und übersetzen Fensterkoordinaten in „Ansicht“ Koordinaten behandeln. Dies ist die einfachste Methode, aber Ihre Zeichnung Leistung beeinträchtigt werden könnte.

  2. Verwalten der Drehung selbst. Sie müssen Ihre eigenen Methoden hinzufügen mit den Rotationen für den Umgang, durch die UIDeviceOrientationDidChangeNotification Benachrichtigung angetrieben. Diese Methode sollte die GL-Befehle enthält, die Matrix zu drehen, übersetzen berührt, etc ..

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top