1

フルスクリーンを表示するView Controllerがあり、View Controllerから別のモーダルVCを表示できます。モーダルVCにはステータスバーが必要ですが、モーダルVCコントローラーを閉じた後、ベースVCの上部にステータスバー用のスペースがあり、私も設定しました:

[[UIApplication sharedApplication] setStatusBarHidden:YES]

ステータスバーは非表示ですが、スペースはまだあります。ベース VC のビューのフレームを確認しました。0 から始まります。y 座標を -20 から開始する必要はないと思いますが、他に何がありますか?僕にできる?

ありがとう

4

2 に答える 2

3

これを試してください:

[[UIApplication sharedApplication] setStatusBarHidden:NO];
self.view.frame = [[UIScreen mainScreen] applicationFrame];

applicationFrame のドキュメントから:

このプロパティには、画面の境界からステータス バーが占める領域を差し引いたものが含まれます (表示されている場合)。アプリケーションの初期ウィンドウ サイズを取得するには、このプロパティを使用することをお勧めします。四角形はポイント単位で指定します。

より堅牢なソリューションを得るには、ステータス バー フレームの変更に応じてフレームを変更します。アプリケーション デリゲート サブクラスは以下を実装できます。

-application:willChangeStatusBarFrame:
-application:didChangeStatusBarFrame:

または、NSNotificationCenter を使用してこれらの通知に登録できます。

  • UIApplicationWillChangeStatusBarFrameNotification
  • UIApplicationDidChangeStatusBarFrameNotification
于 2013-03-18T00:40:53.043 に答える
0

私はあなたの方法を試しましたが、私にとってはうまくいきませんでした.モーダルVCが却下されたときに、viewDidAppearベースVCで次のことを行う必要があります。

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
self.wantsFullScreenLayout = YES;
[self.view layoutSubviews];

これが良い解決策ではないことはわかっていますが、現時点で私が考えることができるのはこれだけです。とにかく助けてくれてありがとう.

于 2013-03-18T23:28:01.210 に答える