この質問に対する答えが見つからないことに驚きました。おそらく、私が見落としている非常に単純なものである可能性があります。
CGAffineTransform を適用した後に UIView の実際のサイズを取得するにはどうすればよいですか?
例えば。
私のUIViewのサイズは300 x 200です。スケーリング変換を適用します。たとえば、水平と垂直の両方に係数2を適用すると、UIViewは画面上で600 x 400になりますが、それは境界であり、レイヤーの境界はまだ300 x 200のサイズを返しています... UIView の実際のサイズはどこで確認できますか?
ps。言い忘れましたが、uiview も回転させたいと思います。スケーリングだけを適用すると CGSizeApplyAffineTransform はうまく機能しますが、回転もあると正しく機能しません。
編集: drawonward は正しい方向を示してくれました。コンパイルするコードを少し改良したところです。
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 );
rect.size には、変換が適用されたビューの寸法が含まれています。