我有一个包含子视图的容器视图,并且可以在此视图中旋转一些子视图。我最后要做的是用旋转和非旋转子视图拍摄整个视图的屏幕截图。我选择不使用屏幕截图,而是分别处理每个元素并从中创建图像并将所有图像合并在一起。我这样做是为了将屏幕截图放大到原始图像。所以......
除了那些旋转的子视图外,一切都成功实现。以下是我截取每个子视图的代码:
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
我想我明白我正在一个小的原始帧中处理旋转的图像。但它的解决方案是什么?对于任何使用的角度计算精确的帧大小似乎有点复杂。我还缺少一些更容易解决的解决方案吗?