0

私のアプリでは、ユーザーが請求書を作成できます。データは横向きでも縦向きでも入力できます。

その後、ユーザーは見積もりを保存し、保存した見積もりをコレクション ビューで表示できます。iOS の Pages に似ています。タイルのサイズは、縦表示のデバイスの縦横比です。

したがって、ユーザーが見積もりを保存すると、ビューのスクリーン ショットを生成して保存し、タイル ビュー (iOS ページなど) で表示できるようにします。デバイスが縦向きのときにユーザーが保存すると、これはすべて正常に機能します。ランドスケープ中に保存すると、最悪です。

だから私の質問は、ユーザーが向きの変化に気付かずに、ビューを裏で回転させ、そこから UIImage を生成する方法があるということです。

4

1 に答える 1

0

デバイスを回転させてスクリーンショットを撮るコードを同じスレッドで実行している場合、スレッドの実行が終了する前に元に戻す限り、デバイスの画面は更新されません。単純にすべてを回転させます (または、回転するオブジェクトが多すぎる場合は、すべてのスクリーンショットを撮ってからそのスクリーンショットを回転させます)。次に、回転した新しいビューのスクリーンショットを撮ります (または、スクリーンショットを撮って回転させた場合は、何もしません。完了) 次に、すべてを元に戻します (スクリーンショットを撮って回転させた場合を除きます)... 1 つのスレッドで実行できるスクリーンショット メソッドが必要な場合は、CGContext コードを使用します。

(あなたの質問に答えるために、回転は常に舞台裏で行われ、スレッドが終了したときにのみシーンの「前」になります...したがって、スレッドが終了する前に回転を戻すと、ユーザーはそれを見ることはありません.デバイスの画面は、2 回回転するまで更新されません。そこからまた元に戻ります.... ビンゴ!)

于 2013-02-26T04:06:57.973 に答える