gpt4 book ai didi

iphone - 在 iPhone 上启用/禁用每个 View 的状态栏(20 像素问题)

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:58 25 4
gpt4 key购买 nike

我只想启用/禁用每个 View Controller 的状态栏(一些全屏 View ,一些不是)

我已经多次阅读与状态栏 20 像素问题相关的所有帖子,但问题仍然存在,尤其是在 iOS5.0 上(一些技巧适用于较旧的 iOS 版本):

这里是问题定义:

  • 我使用 [[UIApplication sharedApplication] setStatusBarHidden:YES] 来隐藏状态栏

  • 如果我这样做,我总是有 20 像素高的白色空白区域

  • 我已经尝试启用/禁用导航栏来强制布局,这在 iOS 5 上不起作用:

    [self.navigationController setNavigationBarHidden:NO animated:NO];
    [self.navigationController setNavigationBarHidden:YES animated:NO];
  • 我已尝试手动重置 View 框架大小,但没有任何变化

    self.view.frame=CGRectMake(0, 0, 320, 480);

  • 我尝试手动更改导航容器 View :

    self.navigationController.frame=CGRectMake(0, 0, 320, 480);

  • 当然所有 View 都是 480 像素高度

最佳答案

在您想要显示 StatusBar 的 View Controller 的 viewWillAppear 中使用以下方法。

[[UIApplication sharedApplication]setStatusBarHidden:YES];

声明一个 BOOL 变量来指示当 View 加载到您想要隐藏状态栏的 View Controller 中时是否隐藏状态栏并将其值设置为 NO。

BOOL statusBarHidden = NO;

然后在viewcontroller的viewWillAppear中添加如下代码(Status Bar在这个view中是隐藏的)

[[UIApplication sharedApplication] setStatusBarHidden:YES];
if(statusBarHidden == NO)
{
self.navigationController.navigationBar.frame = CGRectOffset(self.navigationController.navigationBar.frame, 0.0, -20.0);
statusBarHidden = YES;

}

关于iphone - 在 iPhone 上启用/禁用每个 View 的状态栏(20 像素问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9274767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com