2017-08-28 1 views
0

Ma question est comment puis-je enregistrer Image avec textview dans l'album? je veux dire quand je rite sur l'image que je veux enregistrer l'image avec le textview je l'écris Click to see the Imagepuis-je enregistrer Image avec textview sur l'album?

et mon code ici, mais ne fonctionne pas

@IBAction func SaveImage(_ sender: Any) { 
     let imageRepresentation = UIImagePNGRepresentation(cv1image.image!) 
     let imageData = UIImage(data: imageRepresentation!) 
     UIImageWriteToSavedPhotosAlbum(imageData!, nil, nil, nil) 

     let alert = UIAlertController(title: "Completed", message: "Image has been saved!", preferredStyle: .alert) 
     let action = UIAlertAction(title: "Ok", style: .default, handler: nil) 
     alert.addAction(action) 
     self.present(alert, animated: true, completion: nil) 

} 

c'est un travail, mais le texte n » t enregistré enter image description here

+0

Qu'est-ce que cela veut dire "Ne fonctionne pas"? Pouvez-vous fournir un journal des erreurs ou décrire mieux le comportement? – araknoid

+0

@araknoid je veux dire ne pas enregistrer dans l'album – faten

+0

La photo est-elle sauvegardée mais sans la vue de texte? ou est-ce que rien n'est sauvé du tout? – LoganHenderson

Répondre

3

Vous devez créer textView une sous-vue de UIImageView. Cependant, cela n'est pas possible dans les storyboards. Le moyen le plus simple d'accomplir ce que vous voulez est d'utiliser un UIView en tant que vue de conteneur, d'ajouter la vue d'image et la vue de texte en tant que sous-vues, puis vous pouvez capturer l'UIView en utilisant la fonction ci-dessous. Votre story-board plan du document devrait ressembler à ceci

enter image description here

func snapshot(view: UIView) -> UIImage? { 
     UIGraphicsBeginImageContext(view.bounds.size) 
     let savedFrame = view.frame; 
     view.layer.render(in: UIGraphicsGetCurrentContext()!) 
     let image = UIGraphicsGetImageFromCurrentImageContext(); 
     view.frame = savedFrame; 
     UIGraphicsEndImageContext(); 
     return image 
    } 

Donc, vous devriez changer votre IBAction à ce qui suit. Vous devez saisir une référence à l'UIView qui contient les deux éléments. Je l'ai appelé "containerView" dans le code ci-dessous.

@IBAction func SaveImage(_ sender: Any) { 
     let image = snapshot(view: containerView) 
     let imageRepresentation = UIImagePNGRepresentation(image!) 
     let imageData = UIImage(data: imageRepresentation!) 
     UIImageWriteToSavedPhotosAlbum(imageData!, nil, nil, nil) 

     let alert = UIAlertController(title: "Completed", message: "Image has been saved!", preferredStyle: .alert) 
     let action = UIAlertAction(title: "Ok", style: .default, handler: nil) 
     alert.addAction(action) 
     self.present(alert, animated: true, completion: nil) 

} 
+0

c'est le travail mais le texte ne sauve pas l'arrière-plan de textview il est sauvé mais le texte ne sauve pas, je veux quand l'utilisateur met du texte et clique sur le bouton de sauvegarde tout le texte et image sauvés, j'espère que vous me comprenez – faten

+0

Je comprends. Peut-être que si vous avez ajouté une photo à votre question pour montrer ce que vous voulez dire – LoganHenderson

+0

[link] (http://g.recordit.co/uWcHuv8MZX.gif) le texte ne pas enregistré – faten