Status bar的显示和隐藏

Status bar的显示和隐藏

  • 如果想要的效果是启动时隐藏,进入软件之后显示
    • 可以在设置中勾选Hide status bar选项
  • View controller-based status bar appearance
    • NO - 代表status bar 的控制权限给了UIApplication
    • YES(默认值) - 代表控制器的优先级比UIApplication高,而且这个时候使用UIApplication控制status bar 将没有效果

最简单的方法(我自己认为)

  • 在info.plist中配置View controller-based status bar appearance为NO
  • 全部页面都隐藏
    • AppDelegateapplication:didFinishLaunchingWithOptions:方法中设置
    • [UIApplication sharedApplication].statusBarHidden = YES;
  • 有的页面需要隐藏
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [UIApplication sharedApplication].statusBarHidden = YES;
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [UIApplication sharedApplication].statusBarHidden = NO;
}
  • 有的页面需要改变状态栏颜色
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
}

控制器自己控制状态栏

  • 当info.plist中没有对View controller-based status bar appearance设置,默认值是YES
/**
 让当前控制器对应的状态栏改变颜色,是白色还是黑色
 */
- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

/**
 让当前控制器对应的状态栏显示或者隐藏
 */
- (BOOL)prefersStatusBarHidden
{
    return YES;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容