2011-01-28 3 views
4

un UIView est créé et un petit snow.png est ajouté et retiré à UIView pour simuler l'effet de neige. Puis je voudrais capturer l'écran en tant qu'image.Dessine UIView et toute sa sous-vue au contexte

UIGraphicsBeginImageContext(self.uiviewPreview.bounds.size); 
[self.uiviewPreview.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil); 

Remarque: self.uiviewPreview est l'UIView.

Mais je peux seulement voir l'image dans UIview dans le jpg enregistré. Mais toutes les sous-vues ajoutées à ce moment-là ne sont pas sauvegardées.

Je voudrais savoir si renderInContext est correcte ou de ne pas utiliser

Répondre

1

Il est la bonne méthode et il devrait fonctionner.

Notez que la méthode a un gros défaut, elle ne reflète pas l'état actuel des animations de couche (alpha, autoresizing, repositionnement, etc.). Si vous dessinez le calque en l'animant, cela ne fonctionnera pas.

+0

couche renderInContext ne fait pas de sous-vues, vous devez le faire vous-même – jjxtra

Questions connexes