我一直试图找到一个解决方案几个小时,但没有取得成功。
所以我在全屏演示期间使用此代码“向上移动”导航控制器
[[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秒...它按预期工作。但是我偶尔会看到空格而不是状态栏。
奇怪的是,在这段代码执行一次之后,即使没有延迟也没有问题。它只是第一次发生。
所以我需要一些帮助...不知道还有什么可以尝试。任何建议都会很棒,非常感谢。