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

时间:2011-01-13 08:45:17

标签: iphone core-plot

我正在使用核心图库来绘制图形。对于某些动画,我必须拍摄整个屏幕的图像快照,以使其流畅。问题是当我尝试从图中获取图像时。图表总是颠倒的。如果我只将图形本身作为快照,那么这不会是一个问题 - 我可以轻松地对其应用变换。问题是,我正在为整个屏幕制作动画,因此我拍摄了整个UIWindow的快照,其中包含一个子视图中的图形。 我尝试使用core.lot上的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);

结果如上所述。与屏幕上可见的图形相比,生成的图像中的图形被颠倒渲染。我做错了还是那个核心情节错误?

2 个答案:

答案 0 :(得分:4)

瞬间改变变换只会对我的动画有所帮助。仍然在将应用程序放到后台时,Apple会对应用程序进行快照,在这里它看起来仍然很奇怪。

我做了什么以及对我有用的东西: 我换了一行:

self.layer.sublayerTransform = CATransform3DMakeScale(1.0, -1.0, 1.0);
文件-initWithFrame:中的-awakeFromNibCPLayerHostingView.m

以下是:

self.layer.transform = CATransform3DMakeScale(1.0, -1.0, 1.0);

现在它起作用,看起来像一个魅力。

答案 1 :(得分:0)

是的,这是一个由核心情节人员做出的设计决定,当我试图完成你在那里做的事情时,这给我带来了很多问题。最佳方法是在抓取图像之前应用变换来颠倒核心绘图视图,然后在渲染图像后取消变换视图。

相关问题