我正在使用核心图库绘制图形。对于某些动画,我必须拍摄整个屏幕的图像快照以使其平滑。问题是当我尝试从图表中获取图像时。该图总是上下颠倒。如果我仅将图形本身作为快照,那么这将不是问题-我可以轻松地对其进行转换。问题是,我正在对整个屏幕进行动画处理,以便拍摄整个UIWindow的快照,该UIWindow在其子视图之一中包含图形。我使用code.google上coreplot项目中提供的coreplot 0.2.2示例进行了尝试。我只是向窗口添加了一个按钮(以便在每个选项卡上可见),当按下按钮时,我从窗口内容中获取图像,并使用以下代码将其另存为相册库中的图像:
UIView *window = [[UIApplication sharedApplication] keyWindow];
UIGraphicsBeginImageContext(window.frame.size);
[window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(newImage, nil, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)
结果如上所述。与屏幕上可见的图形相比,生成的图像中的图形颠倒显示。我做错了还是那是核心漏洞?
暂时更改变换仅对我的动画有用。仍然在将应用程序置于后台时,Apple会对应用程序进行快照,在这里看起来还是很奇怪。
我所做的和对我有用的事情:我替换了以下行:
self.layer.sublayerTransform = CATransform3DMakeScale(1.0, -1.0, 1.0);
Run Code Online (Sandbox Code Playgroud)
从-initWithFrame:和-awakeFromNib文件CPLayerHostingView.m
具有下列之一:
self.layer.transform = CATransform3DMakeScale(1.0, -1.0, 1.0);Run Code Online (Sandbox Code Playgroud)
现在它可以工作了,看起来像是一种魅力。
| 归档时间: |
|
| 查看次数: |
1426 次 |
| 最近记录: |