2010-07-02 3 views
1

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?

  1. Effectuez une copie de la hiérarchie de vue.
  2. Masquer les sous-vues qui n'étaient pas intéressantes.
  3. Prenez l'écran d'impression.
  4. 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

Répondre

0

Donc, malheureusement personne n'a été en mesure de fournir une aide à ce sujet. Comment j'ai résolu le problème:

J'ai enlevé les éléments que je ne voulais pas dans l'écran d'impression. Je l'ai fait en utilisant des animations, donc il n'y aurait pas de scintillement graphique. En fin de compte, il semblait très bon, à mauvais je n'ai jamais résolu le problème original.

Veuillez publier un correctif si vous en trouvez un. Meilleures salutations

// Abeansits

Questions connexes