美文网首页
iOS控制状态栏的显示和隐藏

iOS控制状态栏的显示和隐藏

作者: th先生 | 来源:发表于2022-01-20 14:36 被阅读0次

做了一个图片、视频浏览功能,需要在浏览时隐藏状态栏,视频、图片全屏显示出来。
如果单纯的是在导航push的viewController中进行显示,那状态栏很容易控制。

View controller-based status bar appearance  设置为 YES

在viewController中添加如下控制方法

#pragma mark - 图片视频的浏览隐藏状态栏
- (BOOL)prefersStatusBarHidden {
    return self.statusBarHidden;
}

- (void)refreshStatusBarHidden:(NSNotification *)notification {
    
    NSDictionary *dict = notification.userInfo;
    self.statusBarHidden = [dict[@"isshow"] boolValue];
/// 强制刷新状态栏
    [self setNeedsStatusBarAppearanceUpdate];
    
}

那么如果是presentViewController呢?
分两种情况,
1、

modalPresentationStyle = UIModalPresentationFullScreen;

与上面的设置方法一致。
2、没有设置UIModalPresentationFullScreen,实现了自定义动画效果transitioningDelegate
这个时候用上面的方法设置是行不通的。因为状态栏还是归负责present你的vc的nav视图所有。如果你想在presentViewController目标vc上执行状态栏的控制,需要添加

/// 可以接管状态栏
modalPresentationStyle = UIModalPresentationCustom;

另外,如果你的项目设置

View controller-based status bar appearance  设置为 NO

就可以用下面的方法控制了。

[UIApplication sharedApplication].statusBarHidden = YES;

相关文章

  • UIStatusBar

    UIStatusBar 有的时候我们需要去控制状态栏的显示和隐藏,或者控制状态栏的样式; 从iOS7开始,状态栏的...

  • iOS 状态栏的隐藏显示与状态栏样式的设置

    iOS 状态栏的隐藏显示与状态栏样式的设置 iOS 状态栏的隐藏显示与状态栏样式的设置

  • Android 显示、隐藏状态栏和导航栏

    Android 显示、隐藏状态栏和导航栏 控制状态栏显示,Activity的主题中配置全屏属性 控制状态栏显示,在...

  • 2018-04-09

    原文:IOS状态栏和导航栏的控制问题 IOS的项目多数会遇到控制状态栏和导航栏的问题,比如隐藏状态栏、控制状态栏的...

  • Android 显示、隐藏状态栏和导航栏

    Android 显示、隐藏状态栏和导航栏控制状态栏显示,Activity的主题中配置全屏属性 控制状态栏显示,在s...

  • iOS 知识小集(Status Bar变换)

    背景 iOS 中经常会有需要在某个界面改变状态栏颜色或者某个界面隐藏状态栏的需求。而改变状态栏颜色和控制状态栏显示...

  • ios状态栏UIStatusBar设置

    状态栏就是显示运营商、时间、电量、WiFi的那块 隐藏和显示状态栏 一、隐藏状态栏 iOS8以上的适配: 当然如果...

  • iOS状态栏显示与隐藏

    在iOS 7.0及其以后版本中,iOS状态栏的显示和隐藏 还有状态栏的颜色修改方式如下: (1) 整个app隐藏 ...

  • iOS状态栏的相关设置

    iOS状态栏的相关设置 一:状态栏的隐藏和显示(全局设置) 1...

  • 状态栏的隐藏与显示

    一、启动时隐藏状态了 iOS显示启动页时隐藏状态栏 在iOS7之后,默认情况下 状态栏是交给控制器管理的 如果想让...

网友评论

      本文标题:iOS控制状态栏的显示和隐藏

      本文链接:https://www.haomeiwen.com/subject/fiujhrtx.html