0

タブバー付きのシンプルなアプリがあります。ビューサイズは480x320です。タブバーは49x320です。ただし、UIgraphicsbeginimagecontext(self.view.frame.size)を使用してスクリーンショットを撮ろうとすると、411x320の画像が表示されます。背景画像は480xです。 320で、iOSシミュレーターに正しく表示されます。

UIgraphicsbeginimagecontext(480x320)を使用すると、スクリーンショットの下部に空のスペースが表示されます。

ただし、画面がキャプチャされると、背景画像は69ピクセルの高さでカットされます。背景画像がシミュレーターで正しく表示されるのに、スクリーンショットを撮るときにトリミングされる理由は誰でも知っています。または、imagecontextサイズを大きくした場合に、すべてのスクリーンショットをキャプチャする方法はありますか?

どうもありがとう

4

1 に答える 1

0

ステータスバーが表示されていますか?ステータスバー(20px)のように聞こえ、UITabBar(49px)は余分なスペースがトリミングされている場所です。それがあなたが望むショットよりも小さいビューをself.view返していると思います。UIViewController

背景画像だけが必要な場合は、スクリーンショットのサイズを小さくしてみてください。画面全体が必要な場合は、アプリのメインウィンドウをターゲットにしてみてください。

UIGraphicsBeginImageContext(self.window.bounds.size);
[self.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
于 2012-11-08T14:53:07.253 に答える