Get Größe von UIView nach dem Anwenden von CGAffineTransform

Ich war überrascht, keine Antwort auf diese Frage zu finden, vielleicht ist etwas sehr Einfaches, das ich irgendwie übersehen habe:

Wie erhalte ich die tatsächliche Größe einer UIView, nachdem ich eine CGAffineTransform darauf angewendet habe?

z.B

my UIView hat die Größe 300 x 200. Ich wende eine Skalierungstransformation an, sagen wir mal Faktor 2, sowohl horizontal als auch vertikal. Daher nimmt UIView jetzt 600 x 400 auf dem Bildschirm an, aber seine Grenzen und seine Ebenengrenzen geben immer noch eine Größe von 300 x zurück 200 ... wo finde ich die tatsächliche Größe des UIView?

ps. habe vergessen zu erwähnen ich möchte auch die uiview drehen. Wenn ich nur die Skalierung verwende, funktioniert CGSizeApplyAffineTransform hervorragend. Wenn es jedoch auch eine Rotation gibt, funktioniert dies nicht ordnungsgemäß.

Edit: drawnonward wies mich in die richtige Richtung, ich habe nur ein bisschen den Code zum Kompilieren verfeinert und hier ist es:

UIView* view = (your view being transformed);
CGAffineTransform trans = (view.transform or create a new transformation);

CGRect rect = [view bounds];
CGMutablePathRef path = CGPathCreateMutable();
rect.origin = CGPointZero;
CGPathAddRect(path , &trans , rect);
rect = CGPathGetBoundingBox( path );
CGPathRelease( path );

Now rect.size enthält die Dimensionen der Ansicht mit der angewendeten Transformation. Nochmals vielen Dank an drawnonward

Antworten auf die Frage(12)

Ihre Antwort auf die Frage