これがうまくいくかどうかはわかりませんが、ビットマップを使用したグラフィックスコンテキストを作成してから、ルートビューのコアアニメーションレイヤーを取得し、-renderInContext:メソッドを呼び出すことができます。そのかもしれないそれを行うが、私はそれを試みたことはありません。
しかし、おそらく、あなたは別のアプローチを考慮する必要があります。画面に表示される一連のカスタム描画コードを書いただけで、ファイルやメモリバッファにも描画できるようにしたいのですか?もしそうなら、おそらく、あなたのビューから、そしてあなたのビューが単に使用する別のオブジェクトに、その描画コードを考慮する必要があります。それは非常に簡単にそれを両方の方法で描画することができます。それが去るよう
UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];
UIGraphicsBeginImageContext(screenWindow.frame.size);
[screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *screenshotPNG = UIImagePNGRepresentation(screenshot);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSError *error = nil;
[screenshotPNG writeToFile:[documentsDirectory stringByAppendingPathComponent:@"screenshot.png"] options:NSAtomicWrite error:&error];
これは、少しの粗である:次のコードは、スクリーンショットをつかむと、screenshot.pngと呼ばれるPNGとしてDocumentsディレクトリにそれを保存します、ブレントの答えにより拡大すること
UIApplicationのウィンドウ配列をループして、それらをすべて(キーウィンドウだけではなく)レンダリングすると、ステータスバーが描画されます。 – benzado