【发布时间】:2010-04-22 21:50:19
【问题描述】:
我很惊讶没有找到这个问题的答案,也许是我忽略了一些非常简单的事情:
应用 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 包含应用了转换的视图的尺寸 再次感谢drawonward
【问题讨论】:
标签: objective-c uiview cgaffinetransform