Beim Überschreiben von drawRect
habe ich festgestellt, dass die Koordinaten dort 0,0 als obere linke Seite verwenden.
Aber der Apple UIView Programming Guide sagt das:
Einige iOS-Technologien definieren Standardkoordinatensysteme, deren Ursprung und Ausrichtung sich von denen von UIKit unterscheiden. Zum Beispiel verwenden Core Graphics und OpenGL ES ein Koordinatensystem, dessen Ursprung in der unteren linken Ecke der Ansicht oder des Fensters liegt und dessen Y-Achse relativ zum Bildschirm nach oben zeigt.
Ich bin verwirrt; reden sie über etwas anderes als Quartz, wenn sie sich hier auf Core Graphics beziehen?
"Core Graphics" in dieser Dokumentation bedeutet "Quartz", ja. Es ist nur eine Vereinfachung.
Wenn Sie CGContext
selbst erstellen, hat das Koordinatensystem den Ursprung in der unteren linken Ecke. Wenn UIKit das CGContext
zum Zeichnen in eine Ansicht erstellt, wird das Koordinatensystem vor dem Aufruf von -drawRect:
umgangen.
Core Graphics und Quartz auf iOS sind, soweit es die Koordinaten betrifft, dasselbe. Das iOS Technologies Guide sagt so:
Core Graphics (auch bekannt als Quartz) ...
Das Core Graphics-Framework (CoreGraphics.framework) enthält die Schnittstellen für die 2D-Zeichnungs-API von Quartz. Quartz ist die gleiche erweiterte vektorbasierte Zeichen-Engine, die in Mac OS X verwendet wird.
Der Unterschied besteht darin, dass Quarz technisch gesehen oder der Mechanismus ist, und "Core Graphics" ist der Name des Frameworks. (Auf Mac OS gibt es natürlich ein "Quartz" -Framework, das nur ein Regenschirm ist.)
Zum Nutzen anderer, die diesen Thread finden:
Es gibt eine vollständige Erklärung der Koordinatensysteme hier: Coordinate Systems in Kakao
Es ist nicht gerade hilfreich, dass sie sich unterscheiden. Es gibt Methoden zum Konvertieren zwischen Koordinatensystemen auf den verschiedenen Ebenen der Ansicht in Ihrer App! Zum Beispiel findet dies die Koordinaten des Punktes, bei dem es sich auf (20,20) befindet, auf dem sichtbaren Bildschirm eines gezoomten Bildes. Das Ergebnis ist relativ zum Ursprung des gezoomten Bildes, das nun weit entfernt sein kann.
%Vor%Tags und Links ios uiview core-graphics quartz-graphics