[[UIApplication sharedApplication] keyWindow]
の形式で画面の表示ビューを取得するために使用していますUIView
。次に、そのビューを に変換して操作UIImage
します。UIAlertView
同時に表示する場合を除いて、これはうまく機能しています。その場合、keyWindow
はUIWindow
通常のように を返すのではなく、 を返しますUIModalItemHostingWindow
。そのビューを画像に変換した後は、純粋な黒いスクリーンショットになります。
ドキュメントにはkeyWindow
、「最近makeKeyAndVisibleメッセージが送信されたウィンドウ配列にUIWindowオブジェクトを保持する」と書かれています。
これUIModalItemHostingWindow
は、私が提示しているモーダル アラートが原因であるに違いありません。おそらくkeyWindow
、画面全体ではなく、そのビューを返しているのでしょう。
私の質問は、UIView
画面に表示されているすべてのものを正確に表現することを常に保証するにはどうすればよいですか? それkeyWindow
は良い解決策ではないようです。1 つの回避策は、スローする可能性のあるすべてのアラートを遅らせることですが、可能であればより良い解決策を見つけたいと考えています。