2015-01-03 1 views
0

현재 내 응용 프로그램에 사용자 지정 진행보기가 있습니다. 나는 진도보기를 그리고 그것의 "스냅 샷"을 가져 와서 필요할 때 이것을 전달할 수있다. 따라서 일단 레이어를 그려 본 다음 UIImage로 변환하고 싶습니다.스위프트 : UIImage로 렌더링 CALayers

이미지를보기 위해 문서 디렉토리에 저장하려는 시도가 포함 된 현재 코드입니다.

 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

슈퍼 뷰의 레이어 만 렌더링하면됩니다. 모든 하위 뷰와 하위 계층을 포함해야합니다.

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

작동 했습니까? 너 뭔가 해봤 니? – Mundi