Positionieren Sie eine Ansicht zum Zeichnen über renderInContext:
Ich möchte einen zeichnenUIView
in meiner jetzigenCGGraphicsContext
. Ich zeichne dieUIView
überrenderInContext:
, aber es ist nicht richtig positioniert (immer in der oberen linken Ecke).
Ich habe alle Werte derUIView
verfügbar zum zeichnen derUIView
.
CGRect frame;
CGRect bound;
CGPoint center;
CGAffineTransform transform;
Ich stelle momentan die Position und Rotation der Ebene so ein:
CGContextTranslateCTM(context, frame.origin.x, frame.origin.y);
CGContextRotateCTM(context, (CGFloat) atan2(transform.b, transform.a));
Die Position ist jedoch aufgrund der Drehung nicht korrekt und weicht von der ursprünglichen Position ab.
Wie kann ich die ursprüngliche Position wiederherstellen? Das Koordinatensystem hat sich zwischenzeitlich nicht geändert, es ist nur ein Problem, das zu übersetzencenter.x
undcenter.y
Werte in etwas angemessen fürCGContextTranslateCTM
.
Bearbeiten:
Die gespeicherten Werte sind korrekt und speichern die richtigenbounds
, center
undtransform
ist nicht der Ursprung meiner Ausgabe, der Ursprung meiner Ausgabe, setzt diese Werte auf das ZeichenbareCGLayer
überCGContextTranslateCTM
.