2017-04-12 1 views
1

Je voudrais activer une fonctionnalité sur mon téléphone qui permet aux utilisateurs de cliquer sur partager, puis ils seraient en mesure d'envoyer un message à leurs amis qui incluait par défaut une image de l'application (juste avant le partage de l'utilisateur). Je n'arrive pas à comprendre comment faire cela - et chaque fois que je cherche comment faire tout ce que je reçois sont des tutoriels/réponses sur la façon de partager des images dans la photothèque du téléphone ou par leur appareil photo. Toute idée sur la façon de le faire!Obtenir une capture d'écran de l'écran actuel dans iOS/swift pour le partage

+1

Fonction de capture d'écran est déjà là dans tous les iphones. Alors prenez une capture d'écran et partagez-la. – KAR

Répondre

2

// pour créer une image à partir d'écran

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

// pour partager l'image

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

Utilisez ce code pour obtenir l'image ui et ensuite vous pouvez partager. –

1

Pour partager votre écran juste avant l'utilisateur frappe Partager, d'abord, vous serez besoin pour changer la vue de votre écran en une image et la partager.

Pour modifier votre vue dans une image, vous pouvez ajouter cette extension dans votre code.

//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 
    } 
} 

passer votre point de vue ViewController il, par exemple:

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) 

J'espère que cela vous aide.