【问题标题】:Status Bar hide/show affects view size状态栏隐藏/显示影响视图大小
【发布时间】: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


    【解决方案1】:

    这是 iOS 8 中的一个问题。您可以通过覆盖以下内容来恢复旧行为

     -(BOOL)prefersStatusBarHidden {
       return YES;
      }
    

    【讨论】:

      【解决方案2】:

      我的导航控制器嵌入在另一个视图中,该视图与顶部布局指南对齐。这就是问题所在。

      【讨论】:

        猜你喜欢
        • 2023-03-30
        • 2015-06-25
        • 2011-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多