Ma situation est comme ceci, je veux programmer un écran d'impression de la vue actuelle visible pour l'utilisateur et enregistrer cela dans l'album photo. Le problème est que je ne veux pas que toutes les vues de la hiérarchie soient visibles. Mon plan était de:Comment sauvegarder une partie du contexte graphique sans déranger l'utilisateur?
- Effectuez une copie de la hiérarchie de vue.
- Masquer les sous-vues qui n'étaient pas intéressantes.
- Prenez l'écran d'impression.
- Enregistrez-le dans l'album photo.
Le problème est que je suis bloqué sur le premier point. Puisque UIView
n'implémente pas le protocole NSCopying
je ne peux pas faire une copie profonde de la hiérarchie de vue. J'ai essayé d'archiver et de désarchiver les vues mais cela n'était disponible que sur le bureau. Comme je le vois il y a deux options ici:
a) Implémentez le protocole NSCopying sur toutes les vues et sous-vues. b) Fondu d'une vue blanche couvrant l'ensemble de l'écran (un peu comme l'effet de flash lorsque vous prenez un écran d'impression manuellement) et dans cet instant je cache les vues que je veux.
Existe-t-il une autre façon d'aborder ce problème que j'ai raté?
Edit:
UIGraphicsBeginImageContext([[wordManager mainWorkViewController] view].frame.size);
[[[[wordManager mainWorkViewController] view] layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Meilleures salutations // Abeansits