2012-10-24 11 views
5

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}(これは問題がない場合です)

あなたの注意と努力のために事前に感謝します!

答えて

3

カメラから画像を取得する画像ピッカーを表示すると、iPhoneで同じ問題が発生しました。私が見つけた解決策は、イメージピッカーをポップアップしたビューが再び現れるときにステータスバーを表示するように呼び出すことでした。例えば。

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide]; 
} 
+0

ありがとうございました。これはすでにソリューションの一部です。今、私はイメージピッカーを離れると、アプリは正しいように見えます。しかし、今、新しい問題があります。私がデバイスを回転させた後、ステータスバーが正しい位置(上)にジャンプしますが、残りのアプリケーションは回転しないまま横になっています...その問題も解決しましたか? –

+0

私のアプリはポートレートだけなので、私はこの問題に遭遇しませんでした。解決策を見つけたら、他の人に見てもらうためにここに戻してください。 – Firefly

+0

はまったく動作しません – user2159978

関連する問題