スプライトキットでスクリーンショットをつかむ方法
-
20-12-2019 - |
質問
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に設定することはできません。あなたはそれらを変更することによってより良いパフォーマンスを見るかもしれません。
所属していません StackOverflow