2015-01-03 89 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