美文网首页
iOS 系统状态栏的显示与隐藏

iOS 系统状态栏的显示与隐藏

作者: i丶子木 | 来源:发表于2016-05-11 13:33 被阅读1222次

0. 在哪里可以控制

既然状态来可以显示,也可以隐藏,那么在哪里控制呢。想来想去,有可能状态栏的无非就这么几个类:UIViewController、UIWindow、UIApplication,再看看头文件里的interface声明,前两者貌似没有太合适的方法。没错,就是它了,UIApplication。

@property(nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden;

- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_AVAILABLE_IOS(3_2);

- (void)setStatusBarHidden:(BOOL)hidden animated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 3_2);

其中第一个是一个BOOL类型的属性,第二个和第三个都是带有动画控制的方法。

可以想象到,不带动画的属性设置就是很直观的消失或者出现。即设置UIApplication对象的statusBarHidden为YES或NO。

而从第二个和第三个方式中,我们看到了iOS SDK API的更新变化:

- (void)setStatusBarHidden:(BOOL)hidden animated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 3_2);  从后面的标记看出,是从iOS2.0开始支持,而到3.2就开始不推荐使用,算是过时的了。这个方法除了设置隐藏还是显示的参数外,还提供了是否有动画效果的参数。

- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_AVAILABLE_IOS(3_2); 而这个标记,则刚好是一个接班,从iOS3.2开始,可以使用此方法。提供的动画参数不再是简单的BOOL值,而是一个枚举值,可以选择几种动画效果,目前对于隐藏动作有淡出和向上滑出两种效果

1. 没有生效?

也许你已经尝试按照上面的三种方案对状态栏的隐藏和显示做处理了,但发现毫无反应,原来显示的依然在那里,原来就不可见的现在仍然没有出现。

还是回头仔细看看UIApplication.h的注释吧:

// Setting statusBarHidden does nothing if your application is using the default UIViewController-based status bar system.

这是什么意思?

我直接做下解释吧

你这么做的话,就对了!

2. 启动页面的状态栏

还有问题?是的,在应用/游戏的LaunchImage(俗称“闪屏”)页面,依然有状态栏。

找到Info.plist,加上UIStatusBarHidden,值为YES,就OK了。

3. 其它

其实状态栏相关的东西还有好多好多,这篇只是把显示和隐藏的简要整理一下。

比如从UIApplication.h中,我们还能看到UIStatusBarStyle相关的属性和方法,和隐藏/显示的控制方法类似,大同小异。

还有就是状态条中的网络加载提示,俗称“菊花加载”,也是可以根据我们的程序状况显示和隐藏的(isNetworkActivityIndicatorVisible),做好了能给用户更多指示,提高用户体验。

查看原文点击此处

相关文章

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

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

  • ios状态栏UIStatusBar设置

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

  • iOS状态栏显示与隐藏

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

  • iOS8隐藏系统状态栏

    ios8隐藏系统状态栏有两种方法 1、隐藏系统的状态栏.代码如下: //UIStatusBarStyleDefau...

  • iOS状态栏的相关设置

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

  • iOS statusBar

    隐藏/显示statusBar(iOS 7.0+) 全局隐藏/显示状态栏在info.plist中添加View con...

  • iOS开发-隐藏/显示状态栏

    iOS 7.0及其以后版本中,隐藏/显示状态栏方式: (1) 整个App始终隐藏状态栏: 在Info.plist中...

  • 横屏后状态栏不显示

    横屏时,发现状态栏不显示了,这是因为iOS系统(好像是iOS8之后)在视图横屏的时候默认把状态栏隐藏掉了 上面的隐...

  • 横屏后状态栏不显示

    横屏时,发现状态栏不显示了,这是因为iOS系统(好像是iOS8之后)在视图横屏的时候默认把状态栏隐藏掉了 上面的隐...

  • 隐藏/显示状态栏

    iOS 7.0及其以后版本中,隐藏/显示状态栏方式: 1. 整个App始终隐藏状态栏: 在Info.plist中...

网友评论

      本文标题:iOS 系统状态栏的显示与隐藏

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