tl; dr:ステータスバーが表示された場合、写真を撮っている間にiPadを回転させると、ユーザーインターフェイスのレイアウトが壊れます。回転後のUIImagePickerControllerのステータスバーとレイアウトの問題
私はUIImagePickerController
を通して写真を撮るべきステータスバーを示すアプリを持っています。
私が気づいた最初の問題は、私はへの呼び出しの前に
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
を経由してステータスバーを非表示にしていなかった場合ということであったXcodeの4.51
でのiOS 6、iPadの3でこれを実行しています
[self presentViewController:imagePicker animated:YES completion:nil];
次に、UIImagePickerController
が画面に正しく表示されませんでした。ステータスバーのスペースはまだ予約されています(ただし、時間やバッテリー情報は表示されません)。その結果、画面の下端にあるコントロールは部分的にオフスクリーンになります。だから、
、私はUIImagePickerController
と解決された最初の問題を提示する前にライン
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
を追加しました。
2番目の問題が発生しました(最初の問題の解決策が原因です)。 UIImagePickerController
を呼び出すときは、iPadを回転して閉じる(「キャンセル」または「使用」は関係ありません)、ハンドラ(imagePickerControllerDidCancel
またはimagePickerController:didFinishPickingMediaWithInfo:
が呼び出されます)を使用して、
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
問題は、ステータスバーが実際に示されていることになりましたが、アプリの残りの部分は、それが再び画面上にあることを認識しません。(私は「MainViewController」に持ってUIToolbarのようですが、部分的です面白いのは、iPadを他の向きに回転させると、アニメーションが終了した後にすべてが正しく表示されるということです。
誰でも私にthを解決する方法のヒントを教えてもらえますか?問題ですか? (現在、私の最善の回避策は、誰かが写真を撮った後にステータスバーを隠しておくことですが、それは準最適です)。おそらく、第1の問題に対するよりよい解決策、あるいは両方の問題を解決する方法があるかもしれない。
詳細情報UIImagePickerController
がアクティブな状態でiPadを横向きに回転させた後、これは私のMainViewControllerのビューフレームのフレームです:{{0、0}、{1024、768}}(つまり、問題)。 iPadを横向きにしているときは、UIImagePickerController
が破棄された後のMainViewControllerのビューフレームです:{{0、0}、{1024、748}(これは問題がない場合です)
あなたの注意と努力のために事前に感謝します!
ありがとうございました。これはすでにソリューションの一部です。今、私はイメージピッカーを離れると、アプリは正しいように見えます。しかし、今、新しい問題があります。私がデバイスを回転させた後、ステータスバーが正しい位置(上)にジャンプしますが、残りのアプリケーションは回転しないまま横になっています...その問題も解決しましたか? –
私のアプリはポートレートだけなので、私はこの問題に遭遇しませんでした。解決策を見つけたら、他の人に見てもらうためにここに戻してください。 – Firefly
はまったく動作しません – user2159978