【发布时间】:2012-04-24 12:30:28
【问题描述】:
我正在使用 UIGestureRecognizers 使用 uiimageview 旋转和调整图像大小。现在的问题是我需要从 UIImageView 变换(即 CGAffineTransform)属性中获取图像的新大小。我在 StackOverFlow 上找到了这段代码,但它没有返回正确的值。由于 imageview 不仅调整大小而且旋转。所以我的问题是如何从旋转和调整大小的 UIImageView 的变换属性中获取新的大小和位置?
CGRect newRect = CGRectApplyAffineTransform(self.imageView.bounds, self.imageView.transform);
有人可以帮忙吗?
谢谢
回答 好的,我找到了解决方法。造成尺寸计算问题的主要原因是旋转。那么这里做了什么检查。
CGFloat angle = atan2(self.imageView.transform.b, self.imageView.transform.a);
CGAffineTransform tempTransform = CGAffineTransformRotate(self.imageView.transform, -angle);
CGRect newRect = CGRectApplyAffineTransform(CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height), tempTransform);
谢谢大家
【问题讨论】:
标签: objective-c ios uiimageview cgaffinetransform