使用不成比例的大小和帧调整旋转UIImage

时间:2013-10-14 02:56:27

标签: iphone ios objective-c xcode uiview

我有一个包含子视图的容器视图,并且可以在此视图中旋转一些子视图。我最后要做的是用旋转和非旋转子视图拍摄整个视图的屏幕截图。我选择不使用屏幕截图,而是分别处理每个元素并从中创建图像并将所有图像合并在一起。我这样做是为了将屏幕截图放大到原始图像。所以......

除了那些旋转的子视图外,一切都成功实现。以下是我截取每个子视图的代码:

UIGraphicsBeginImageContext(subview.frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGFloat angle = atan2(rte.transform.b, rte.transform.a);
CGContextRotateCTM (context, angle);
[subview.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

以下是旋转子视图的问题。下图显示了略微旋转的子视图,但其角落被切掉了。此外,此图像向左移动。比较左右两侧。

http://vunet.us/inc/img/test-rotate.png

我想我明白我正在一个小的原始帧中处理旋转的图像。但它的解决方案是什么?对于任何使用的角度计算精确的帧大小似乎有点复杂。我还缺少一些更容易解决的解决方案吗?

0 个答案:

没有答案