0

ステータス バーを非表示にするときの UIViewController のメイン ビューの配置に問題があります。ステータス バーを非表示にする呼び出しを呼び出しますが、プログラムでフレームの位置を変更しようとしても、ステータス バーによって残されたスペースを占有するようにビューが移動しません。

以下は、青い枠線で囲まれたビューのスクリーンショットです。私の最善の努力にもかかわらず、ステータスバーのスペースを占有するように翻訳することはできないようです. ただし、最初にビューに入ったときにそれを達成するために何を呼び出すかはわかりませんが、電話を回転させると、スペースが完全に占有されることに気付きます。ビューの位置を変更する方法はありますか?

ここに画像の説明を入力

ステータス バーを非表示にして、次のコードでビューの位置を変更しようとしました。

[self setWantsFullScreenLayout:YES];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];

CGRect translatedFrame = self.view.frame;
translatedFrame.origin.y -=20;
self.view.frame = translatedFrame;

[self.view.layer setBorderColor:[UIColor blueColor].CGColor];
[self.view.layer setBorderWidth:1.0f];
4

3 に答える 3

1

いつどこでステータスバーを非表示にしますか?私の経験では、これはコードがに配置されている場合にのみ正しく処理されますviewWillAppear:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}
于 2012-05-25T22:35:07.253 に答える
0

使用しているライブラリ(ビューデッキ)に問題を絞り込みました。誰もが提案するのは普通の場合だと思いますが、ViewDeckがViewControllerでコンテナを作成することを考えると、そのために正しくレンダリングされていないと思います。

于 2012-05-25T23:25:37.113 に答える
0

ビューのサイズを変更するには、この行を追加する必要があります。

[self setWantsFullScreenLayout:YES];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];

CGRect translatedFrame = self.view.frame;
translatedFrame.origin.y -=20;
translatedFrame.size.height += 20; // Add 20px
self.view.frame = translatedFrame;

[self.view.layer setBorderColor:[UIColor blueColor].CGColor];
[self.view.layer setBorderWidth:1.0f];
于 2012-05-25T21:18:52.040 に答える