1

ステータス バーが最初に表示されている状態で、サブビューを追加してステータス バーを非表示にします。

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
[myController.view addSubview:anotherController.view];

このビューにはステータスバーの表示を切り替えるボタンがありますが、もう一度設定statusBarHiddenするNOと、ビューコントローラーのビューはステータスバーを考慮して自動サイズ変更されず、その結果、ビューが押し下げられて切り取られます20pxまで。ビューに適切なサイズ変更マスクをすべて設定し、自動レイアウトも試しましたが、どちらも機能していないようです。フレームを手動で設定せずにステータスバーを表示/非表示にするときに、ビューのサイズを自動的に変更したいと思います。

アップデート

これをルート ビュー コントローラーのビューに追加する代わりに、ナビゲーション コントローラーのスタックにプッシュし、ステータス バーとナビゲーション バーを非表示にしました。次に、ステータス バーのみを切り替えるオプションをユーザーに提供します。ただし、問題はまだ残っており、ステータスバーが再表示されると、ビューが 20px 押し出されて切り取られます。

しかし、デバイスを回転させると、ステータスバーが非表示になった後にデバイスを回転させた場合にのみ、すべてがその場所にあります。

4

1 に答える 1

0

myController はどのようにウィンドウに追加されますか? myController がウィンドウの rootViewController であると仮定すると、statusBar の表示/非表示時にこのコントローラーのサイズが正しく変更されるはずです。anotherController のビューは、そのビューを追加するだけでなく、別の方法で追加する必要があります。それでも、そのビューに正しいサイズ変更フラグを指定すれば、サイズも変更する必要があります。ただし、そのコントローラーを navigationController にプッシュするか、新しい rootViewController として設定した方がよいでしょう。

于 2012-11-13T22:41:36.380 に答える