在不同背景下颠倒呈现的核心图

kra*_*nyk 2 iphone core-plot

我正在使用核心图库绘制图形。对于某些动画,我必须拍摄整个屏幕的图像快照以使其平滑。问题是当我尝试从图表中获取图像时。该图总是上下颠倒。如果我仅将图形本身作为快照,那么这将不是问题-我可以轻松地对其进行转换。问题是,我正在对整个屏幕进行动画处理,以便拍摄整个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)

结果如上所述。与屏幕上可见的图形相比,生成的图像中的图形颠倒显示。我做错了还是那是核心漏洞?

kra*_*nyk 5

暂时更改变换仅对我的动画有用。仍然在将应用程序置于后台时,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)

现在它可以工作了,看起来像是一种魅力。