以编程方式在self.view中捕获动画CAShapeLayer

时间:2012-12-24 12:06:47

标签: objective-c ios cabasicanimation cashapelayer

希望你会好起来。

我的观点中有一个圆圈。我已经应用了动画。因此它以逆时针方向动画。现在当我使用下面的行捕获视图图像时

UIGraphicsBeginImageContext(self.view.frame.size);
        [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
        viewImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

它显示原始图层不是动画部分,简单来说它不捕捉动画。

我还有更多的单词来描述我的问题,我剩下半圈(动画后),捕获图像后它将是完整的圆而不是一半。

我想我不太清楚,但我尽力做到。如果您对我的问题有任何疑问,请问我。

感谢您的期待。

1 个答案:

答案 0 :(得分:0)

我在互联网上搜索了大约2个小时,最后我找到了解决问题的方法。再次解释方案。我有一个逆时针动画的圆圈,在按钮上,我不得不拍摄屏幕的图像,发生的问题是当我按下按钮时显示完整的圆圈,(但实际上它应该显示一半或者剩下的一部分)。

所以我找到了一个非常简单的解决方案,只需替换这些行

        UIGraphicsBeginImageContext(self.view.frame.size);
        [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
        viewImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

与这些

CGImageRef screen = UIGetScreenImage();
UIImage *shareImage = [UIImage imageWithCGImage:screen];
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);