質問

SpriteKitでスクリーンショットをつかみました。私はすべての方法をオンラインで見つけることができるすべての方法を試しました。彼らは機能していません。

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

働いていない

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

自己窓口と規模を認識することはできません。

役に立ちましたか?

解決

-drawViewHierarchyInRect:afterScreenUpdates:がSkview(SO)で動作することになっているのかどうかはわかりませんが、2番目の例ではコンパイルされていない理由は、(1)それを呼び出してboundsに呼び出して(おそらく)selfと(2)ではなくUIViewControllerは、self.viewの値を定義していません。それらの2行を変更するだけです:

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

また、scale- "OPAQUE"への2番目のパラメータ - あなたのビューが透明でない限り、 "AfterscreenUpdates"をYesに設定することはできません。あなたはそれらを変更することによってより良いパフォーマンスを見るかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top