UIStatusBarの非表示は、表示されているUIViewにどのように適用されますか?

StackOverflow https://stackoverflow.com/questions/1207277

質問

主にナビゲーションバー駆動型のアプリケーションがあります。いくつかのケースでは、モーダルビューの表示が必要であり、そのうちの1つではステータスバーを非表示にする必要があります。ただし、モーダルビューを表示する前にステータスバーを非表示にしても、ビューは20ピクセルオフセットされます。

ビューが表示された後にモーダルビューのフレームを0、-20、320、480に設定しても、ビューの上部が切り取られます。

また、ユーザーが画面をタップしたときにステータスバー(およびツールバー)を表示できるようにしたいと思います。これは、ビデオプレーヤーの動作とほぼ同じです。したがって、この画面のスタイルを黒の透明に設定し、ステータスバーを非表示または表示してもビューが上下にジャンプしないことを望みます。

役に立ちましたか?

解決

以下のコメントから、iPhone OS 2.xをターゲットにしていることがわかりました。役立つ提案があります。

モーダルビューを表示する前に、次のようにします。

  [[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
  [[self view] setFrame:CGRectMake(0, 0, 320, 480)];

実際にモーダルビューの高さが480pxであることを確認してください。一度、下部の空の20pxスペースにだまされました。私のビューはまだ460ピクセルの高さ(ステータスバーを考慮して)であるため、コードは実際に機能していましたが、私のビューは適切な高さではなかったことが判明しました。

モーダルビューを非表示にすると、これは機能します。

[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];
[[self view] setFrame:CGRectMake(0, 20, 320, 460)];

presentModalViewController を使用している場合は、コードを少し調整する必要がある場合があります-カスタムアニメーションを使用しているため、 -addSubview を使用してこれを試しました。ただし、基本的な原則は同じである必要があります(つまり、親ビューのフレームを変更する)。

他のヒント

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top