我想在用户点击按钮时隐藏/显示状态栏 . 我是这样做的:
// Hide
[[UIApplication sharedApplication] setStatusBarHidden:YES
withAnimation:UIStatusBarAnimationFade];
// Show
[[UIApplication sharedApplication] setStatusBarHidden:NO
withAnimation:UIStatusBarAnimationFade];
这会制动UI布局,因为视图向上移动 . 我选择了所有Extend Edges选项,但它没有帮助 .
我发现布局因视图高度而改变:
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
NSLog(@"%@", NSStringFromCGRect(self.navigationController.view.frame));
}
它记录:
{{0,0},{320, 568 }} - 隐藏状态栏时 .
{{0,0},{320, 588 }} - 显示时 .
问题是如何在显示或隐藏状态栏时防止视图框更改 .
2 回答
这是iOS 8中的问题 . 您可以通过覆盖以下内容来恢复旧行为
我的导航控制器嵌入在另一个视图中,其中一个与顶部布局指南对齐 . 那就是问题所在 .