2015-02-06 2 views
0

아래 코드를 사용하여 objective-c를 사용하는 전체 iPhone 스크린의 스크린 샷을 얻으려고 시도했습니다. objective-c를 사용하여 iPhone에서 완벽하게 작동했습니다. 그러나 swift에서 전체 화면의 스크린 샷을 얻지 못하고 있습니다. 아무에게도 정보를 제공하지 마십시오. 이것을 고려하면? 사전에UIGetScreenImage를 신속하게 대체 할 수 있습니까?

CGImageRef UIGetScreenImage(void); 
CGImageRef screen = UIGetScreenImage(); 
UIImage* image = [UIImage imageWithCGImage:screen]; 
CGImageRelease(screen); 

감사

+0

이 swift.I에서 전체 화면의 스크린 샷을 가지고 가기를위한 다른 방법은 아래의 코드를 시도 swift.Is에 UIGetScreenImage을하지 않았다 신속하게 var keyWindow : UIWindow = UIApplication.sharedApplication(). keyWindow! VAR의 RECT : CGRect = keyWindow.bounds –

+0

UIGraphicsBeginImageContextWithOptions (rect.size 사실, 0.0) VAR 컨텍스트 : CGContextRef UIGraphicsGetCurrentContext =() keyWindow.layer .renderInContext (컨텍스트) VAR의 capturedScreen :있는 UIImage UIGraphicsGetImageFromCurrentImageContext =() UIGraphicsEndImageContext () nsDocumentDirectory = NSSearchPathDirectory.DocumentDirectory 가 nsUserDomainMask = NSSearchPathDomainMask.UserDomainMask 하자 해주면 참 경로의 NSSearchPathForDirectoriesInDomains = (nsDocumentDirectory, nsUserDomainMask) { –

+0

경우 paths.count> {0 경우하자 dirPath 경로 = [0]으로 할 수? 문자열 { 할 writePath = dirPath.stringByAppendingPathComponent ("image.png를") UIImagePNGRepresentation (capturedScreen) .writeToFile (원자 writePath : TRUE) } } } (I 만보기 화면을 받고 있지만하고 위의 코드를 사용하여 (위의 창 수준 위에 배치됩니다) alertview 점점 –

답변

0

이 시도 :

extension UIView { 
    var snapshot: UIImage { 
     get { 
      UIGraphicsBeginImageContextWithOptions(self.bounds.size, false, UIScreen.mainScreen().scale) 
      self.drawViewHierarchyInRect(self.bounds, afterScreenUpdates: true) 
      let image = UIGraphicsGetImageFromCurrentImageContext() 
      UIGraphicsEndImageContext() 
      return image 
     } 
    } 
} 
관련 문제