3

[[UIApplication sharedApplication] keyWindow]の形式で画面の表示ビューを取得するために使用していますUIView。次に、そのビューを に変換して操作UIImageします。UIAlertView同時に表示する場合を除いて、これはうまく機能しています。その場合、keyWindowUIWindow通常のように を返すのではなく、 を返しますUIModalItemHostingWindow。そのビューを画像に変換した後は、純粋な黒いスクリーンショットになります。

ドキュメントにはkeyWindow、「最近makeKeyAndVisibleメッセージが送信されたウィンドウ配列にUIWindowオブジェクトを保持する」と書かれています。

これUIModalItemHostingWindowは、私が提示しているモーダル アラートが原因であるに違いありません。おそらくkeyWindow、画面全体ではなく、そのビューを返しているのでしょう。

私の質問は、UIView画面に表示されているすべてのものを正確に表現することを常に保証するにはどうすればよいですか? それkeyWindowは良い解決策ではないようです。1 つの回避策は、スローする可能性のあるすべてのアラートを遅らせることですが、可能であればより良い解決策を見つけたいと考えています。

4

2 に答える 2

4

使用する[[[UIApplication sharedApplication] delegate] window]

の代わりに[[UIApplication sharedApplication] keyWindow]

UIWindowこれにより、アプリの究極のルート ビューを確実に取得できます。

于 2014-10-30T02:28:45.677 に答える