我很惊讶地发现没有针对这个问题的答案,也许是我忽略了一些非常简单的东西:
如何在应用CGAffineTransform之后获取UIView的实际大小?
例如:
我的UIView大小为300 x 200,我应用了一个缩放变换,水平和垂直因子均为2,因此UIView现在在屏幕上占据600 x 400的空间,但它的边界和图层的边界仍然返回300 x 200的大小...那么我在哪里可以找到UIView的真实大小?
附:我忘了提到我还想旋转uiview。如果只应用缩放,则CGSizeApplyAffineTransform效果很好,但如果还有旋转,则不起作用。
编辑:drawnonward指导了我正确的方向,我只是稍微修改了一下代码,现在放在这里:
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 包含了应用变换后视图的尺寸。再次感谢 drawnonward。