Wie ich auf in this answer erweitern, verwendet die Quartz 2D-Koordinatensystem die linke untere Ecke als (0,0), die das gleiches wie die Fenster-System auf dem Mac koordinieren. Das iPhone verwendet die linke obere Ecke als (0,0) für sein Ansichtslayout, sodass die Koordinaten der Koordinaten der Koordinaten der UIViews-Ebenen um die Y-Achse umgekehrt werden.
Wenn Sie die NSString-UIKit-Erweiterungen zum Zeichnen von Text in die Sicherungsschicht für eine UIView verwenden, wird sie korrekt ausgerichtet, da dieses Umkehren berücksichtigt wird. Wenn Sie jedoch die untergeordnete Quartz-Textzeichnung verwenden, müssen Sie zuerst das Koordinatensystem um die Y-Achse drehen (so dass 0,0 wieder unten links ist), um die Dinge richtig zu orientieren.
Normale Core-Grafik-Kontexte (zum Zeichnen von Bildern oder PDFs für die Speicherung oder Anzeige) werden nicht invertiert, das Gegenteil ist der Fall. Normaler Quartz-Text wird zwar gut dargestellt, aber für Objekte, die mit den NSString-UIKit-Erweiterungen gezeichnet werden, muss das Koordinatensystem zuerst invertiert werden. Dies führt bei den Entwicklern, deren Bilder und Text beim Zeichnen auf den Bildschirm richtig aussehen, zu großer Verwirrung, bei der Speicherung auf dem Datenträger jedoch auf dem Kopf.
Warum dies getan wurde, ist eine Vermutung. Beide Koordinatensysteme haben unter Umständen ihre Vorteile. Es ist jedoch eine einfache Sache, um zu korrigieren.
nette Antwort Brad .... +1 :) –