2017-04-12 6 views
1

사용자가 공유를 클릭 할 수있게 해주는 기능을 내 전화기에서 사용하고 싶습니다. 그러면 친구에게 기본적으로 그림이 포함 된 메시지를 보낼 수 있습니다. 앱 (사용자가 공유하기 바로 직전). 이 작업을 수행하는 방법을 알아낼 수는 없지만 휴대 전화의 사진 보관함이나 카메라로 이미지를 공유하는 방법에 대한 자습서/답변을 얻을 수 있습니다. 이 작업을 수행하는 방법에 대한 아이디어! 사용자가 공유 안타 전에iOS/swift의 현재 화면 공유 스크린 샷을 받으십시오.

+1

스크린 샷 기능이 이미 모든 iPhone에 있습니다. 따라서 스크린 샷을 찍어 공유하십시오. – KAR

답변

2

// 먼저 필요합니다, 화면을 공유하려면

UIGraphicsBeginImageContext(view.frame.size) 
view.layer.renderInContext(UIGraphicsGetCurrentContext()) 
let image = UIGraphicsGetImageFromCurrentImageContext() 
UIGraphicsEndImageContext() 

// 공유하는 스크린 샷에서 이미지

var imagesToShare = [AnyObject]() 
imagesToShare.append(image) 

let activityViewController = UIActivityViewController(activityItems: imagesToShare , applicationActivities: nil) 
activityViewController.popoverPresentationController?.sourceView = self.view 
presentViewController(activityViewController, animated: true, completion: nil) 
3
UIGraphicsBeginImageContext(self.view.bounds.size) 
self.view.drawHierarchy(in: view.bounds, afterScreenUpdates: false) 
let image = UIGraphicsGetImageFromCurrentImageContext() 
UIGraphicsEndImageContext() 
+0

이 코드를 사용하여 uiimage를 가져 오면 공유를 진행할 수 있습니다. –

1

을 이미지를 만들 수 있습니다 화면의보기를 이미지로 변경하고 공유 할 수 있습니다.

이미지로보기를 변경하려면 코드에이 확장명을 추가하면됩니다.

//UIView extension which converts the UIView into an image. 
extension UIView { 
    func toImage() -> UIImage { 
     UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.mainScreen().scale) 

     drawViewHierarchyInRect(self.bounds, afterScreenUpdates: true) 

     let image = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     return image 
    } 
} 

예를 들어, 거기의 ViewController의 관점을 통과 :이 당신을 도움이되기를 바랍니다

let imageToShare = self.view.toImage() 

    let activityItems : NSMutableArray = []() 
     activityItems.addObject(imageToShare) 


    let activityVC = UIActivityViewController(activityItems:activityItems as [AnyObject] , applicationActivities: nil) 
       self.presentViewController(activityVC, animated: true, completion: nil) 

합니다.