【发布时间】:2015-01-29 08:58:50
【问题描述】:
我想在用户点击按钮时隐藏/显示状态栏。这是我的做法:
// Hide
[[UIApplication sharedApplication] setStatusBarHidden:YES
withAnimation:UIStatusBarAnimationFade];
// Show
[[UIApplication sharedApplication] setStatusBarHidden:NO
withAnimation:UIStatusBarAnimationFade];
这会阻止 UI 布局,因为视图向上移动。我选择了所有“延伸边缘”选项,但没有帮助。
我发现布局会因视图高度而改变:
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
NSLog(@"%@", NSStringFromCGRect(self.navigationController.view.frame));
}
它记录:
{{0, 0}, {320, 568}} - 隐藏状态栏时。
{{0, 0}, {320, 588}} - 显示时。
问题是在显示或隐藏状态栏时如何防止视图框架发生变化。
【问题讨论】:
标签: ios objective-c statusbar