2015-01-03 53 views
0

我目前在我的应用程序中有一个自定义进度视图。我试图画出进度视图,然后拍摄它的“快照”,以便我可以在需要的地方传递。所以一旦我绘制了我的图层,我想将它们转换为单个UIImage。Swift:将CALayers渲染到UIImage

这是我目前的代码,其中还包括尝试保存到文档目录以查看图像。

 UIGraphicsBeginImageContext(self.frame.size) 

     self.backgroundRingLayer.renderInContext(UIGraphicsGetCurrentContext()) 
     self.progressRingLayer.renderInContext(UIGraphicsGetCurrentContext()) 
     let image = UIGraphicsGetImageFromCurrentImageContext() 

     let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) 
     let documentsDirectory = paths[0] as String 
     let data:NSData = UIImagePNGRepresentation(image) as NSData 
     data.writeToFile(documentsDirectory, atomically: true) 

     UIGraphicsEndImageContext() 

我比较新使用CGContext等,所以我可能会离开这个。任何帮助将是伟大的,谢谢!

+0

你想要做什么?您已将不同的CALayer渲染到一个单一的上下文中,这是什么意思? – Sandeep

回答

0

只是渲染superview的图层。它应该包括所有子视图和子图层。

self.view.renderInContext(UIGraphicsGetCurrentContext()) 
+0

它工作?你有别的事吗? – Mundi