Es ist wirklich ein Schmerz, aber immer, wenn ich ein UIImague zeichne ziehen, ist es auf den Kopf gestellt.Wie kompensiert man das gespiegelte Koordinatensystem von Kerngrafiken für einfaches Zeichnen?
Wenn ich die Koordinaten umblättere, wird das Bild korrekt gezeichnet, aber auf Kosten aller anderen CG-Funktionen wird "falsch" gezeichnet (umgedreht).
Was ist Ihre Strategie, wenn Sie Bilder und andere Dinge zeichnen müssen? Gibt es eine Faustregel, wie man nicht immer wieder in diesem Problem stecken bleibt?
Auch eine unangenehme Sache, wenn ich die Y-Achse kippen ist, dass mein CGRect aus dem UIImageView Rahmen falsch ist. Statt wie erwartet bei 10,10 oben links zu erscheinen, erscheint sie unten.
Aber alle diese normalen Linienzeichnung Funktionen von CGContext nehmen die richtigen Koordinaten. Zeichnen einer Linie in-drawRect mit Ursprung 10,10 oben links, wird wirklich oben links beginnen. Aber zur gleichen Zeit ist das seltsam, weil Core-Grafiken tatsächlich ein umgedrehtes Koordinatensystem mit y 0 am unteren Rand haben.
So scheint es, dass dort etwas wirklich inkonsistent ist. Zeichnen mit CGContext-Funktionen nimmt Koordinaten als "erwartet" (cmon, niemand denkt in Koordinaten beginnend von unten links, das ist albern), während Zeichnen jeder Art von Bild immer noch die "falsche" Art und Weise funktioniert.
Verwenden Sie Hilfsmethoden zum Zeichnen von Bildern? Oder gibt es etwas Nützliches, das das Zeichnen von Bildern nicht zu einem Ärgernis macht?
Ja, richtig. Aber wenn ich es übersetze und umblättere, scheinen alle anderen CG-Zeichenfunktionen wie das Zeichnen von Linien und so weiter falsch zu zeichnen. Sie haben also die Wahl: falsche Bilder oder falsche Wege. Oder die ganze Zeit hin und her blättern. – dontWatchMyProfile
mystify: Sie könnten den Flip-Space-Code in eine Methode aufteilen und/oder den gstate verwenden, um die Umkehrung zu speichern und wiederherzustellen, aber sehen Sie die andere Antwort, die ich gerade gepostet habe. –