0

私は何時間も解決策を見つけようとしてきましたが、成功していません。

したがって、このコードを使用して、全画面表示中にナビゲーションコントローラーを「上に移動」しています

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
//viewController.navigationController.view.frame = [[UIScreen mainScreen] bounds];
//viewController.view.frame = [[UIScreen mainScreen] bounds];

//[viewController.view setNeedsDisplay];
NSLog(@"%@",NSStringFromCGRect(viewController.view.frame));
NSLog(@"%@",NSStringFromCGRect(viewController.navigationController.view.frame));

ログの結果は次のとおりです: {{0, 0}, {320, 548}} {{0, 0}, {320, 568}}

コメントされた部分でわかるように...問題を解決するためにいくつかの方法を試しました。ただし、UIKit は画面の位置を更新したくないようです。

ステータスバーを非表示にした後、0.2秒の遅延後にこのコードを実行すると、期待どおりに動作します。ただし、ステータスバーの代わりに空白が一瞬表示されます。

奇妙なことに、このコードが一度実行された後は、遅延がなくても問題はありません。発生するのは初回のみです。

だから私はここで助けが必要です...他に何を試すべきかわかりません。どんな提案も素晴らしいでしょう、どうもありがとう。

4

0 に答える 0