Kann ich die Herkunft, wenn dabei eine Drehung zu transformieren in Quartz 2D für das iPhone?

Sorry, wenn dieses offensichtlich ist oder abgedeckt anderswo, aber ich googeln den ganzen Tag und habe keine Lösung gefunden, die tatsächlich funktioniert hat.

Mein problem ist wie folgt: ich bin derzeit dabei, ein Bild in einem vollen Bildschirm UIView, für Beispiele Willen werden wir sagen, dass das Bild in der rechten unteren Ecke der UIView. Ich möchte gerne eine rotation verwandeln(CGAffineTransformMakeRotation) in der Mitte des Bildes, wird jedoch standardmäßig die rotation Befehl rotiert um das Zentrum der UIView es sich von selbst. Als ein Ergebnis, mein Bild über den Bildschirm bewegt, wenn ich drehen, statt Sie bleiben an Ort und Stelle und drehen um den eigenen Mittelpunkt.

Von dem, was ich gesammelt habe, muss ich übersetzen, meinen Kontext so, dass der Ursprung(Zentrum der UIView) ist in der Mitte von meinem Bild, Drehen, und dann wieder der Zusammenhang mit der übersetzung zurück an die ursprüngliche Stelle.

Folgenden ist die nächste Sache, die ich bekommen habe, zu arbeiten, aber das problem ist, dass, während das Bild sich dreht, bewegt es sich nach unten, während es dreht. Ich glaube, dies wird verursacht durch tweening-animation den 1. Schritt übersetzen und 3. Schritt übersetzen, statt nur die Erkenntnis, dass die anfangs-und end-Punkt auf der übersetzt wäre das gleiche...

//Before this i'd make a call to a function that draws a path to a passed in context
CGAffineTransform inverseTranslation = CGAffineTransformMakeTranslation( transX, transY );
CGAffineTransform translation = CGAffineTransformMakeTranslation( -transX, -transY );
CGAffineTransform rot = CGAffineTransformMakeRotation( 3.14 );
CGAffineTransform final = CGAffineTransformConcat( CGAffineTransformConcat( inverseTranslation, rot ), translation );
//Then i apply the transformation animation like normal using self.transform = final etc etc

Ich habe auch versucht Sachen wie CGContextTranslateCTM und CGContextSaveGState/UIGraphicsPushContext, aber diese scheinen wenig Wirkung.

Ich ve wurde kämpfen mit diesem für Tage und meine aktuelle Lösung scheint nahe, aber ich habe keine Ahnung, wie man loswerden, dass die übersetzung von "tweening". Hat jemand dafür eine Lösung oder einen besseren Weg zu gehen über diese?

[update]
Vorerst ich ziehe mein Bild zentriert in der UIview ' s center und dann die Einstellung der UIView.center-Eigenschaft, um die Herkunft würde ich gerne drehen und dann den drehen-Befehl. Scheint ein bisschen wie ein hack, aber bis ich das bekommen kann die real übersetzt, es ist meine einzige Wahl.
Danke!

InformationsquelleAutor Skyler | 2009-03-22
Schreibe einen Kommentar