Question

Lorsque j'essaie de prendre une capture d'écran dans spritekit.J'ai essayé toutes les méthodes que je peux trouver en ligne.Ils ne travaillent pas.

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *gameOverScreenImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

ça ne marche tout simplement pas

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, scale);
[self drawViewHierarchyInRect:self.bounds afterScreenUpdates:YES];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Je ne peux pas reconnaître mes limites et mon échelle.

Était-ce utile?

La solution

Je ne suis pas sûr si -drawViewHierarchyInRect:afterScreenUpdates: est censé fonctionner avec SKView (je suppose), mais la raison pour laquelle le deuxième exemple ne se compile pas est que (1) vous essayez de l'appeler et bounds sur self (vraisemblablement un UIViewController) plutôt que self.view et (2) vous n’avez pas défini la valeur de scale.Changez simplement ces deux lignes :

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale);
[self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:YES];

De plus, le deuxième paramètre à UIGraphicsBeginImageContextWithOptions—« opaque » – ne devrait pas être NON à moins que votre vue soit transparente, et définir « afterScreenUpdates » sur OUI n'est nécessaire que dans certaines circonstances qui n'incluent probablement pas celle-ci.Vous constaterez peut-être de meilleures performances en les modifiant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top