ios状态栏(转自http://www.molotang.com/articles/1609.html)
2015-09-29 14:46
393 查看
再说说iOS的状态栏(显示与隐藏)
发表于 2014年 5 月 8 日 由 三石
在今年早些时候,整理了一篇由于iOS7中状态栏对布局影响的文章,即状态栏不占高度,可与页面实际内容(origin.y为0)相重叠。在有些情况下,比如在某款游戏中,我们不希望在游戏页面看到状态栏,一来是为了省地方,二来也避免状态栏“破坏气氛”。这篇文章就整理下状态栏隐藏和显示相关的内容。
0. 在哪里可以控制
既然状态来可以显示,也可以隐藏,那么在哪里控制呢。想来想去,有可能状态栏的无非就这么几个类:UIViewController、UIWindow、UIApplication,再看看头文件里的interface声明,前两者貌似没有太合适的方法。没错,就是它了,UIApplication。
从UIApplication.h中,我们看来看去也就这么3个和状态栏的隐藏有关:
可以想象到,不带动画的属性设置就是很直观的消失或者出现。即设置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),做好了能给用户更多指示,提高用户体验。
相关文章推荐
- 状态栏提示控件的实现原理(转自http://www.cnblogs.com/smileEvday/archive/2013/05/30/statusBarTips.html)
- android6.0SDK中删除HttpClient的相关类的解决方法
- 【Android应用开发技术:网络通信】Android下的SOAP处理
- HttpClient, 使用C#操作Web
- Adobe Dynamic Http Streaming的简单配置与实现 (FMS, HLS, HDS)
- 网络流2
- http url转义字符,特殊字符
- 【Android应用开发技术:网络通信】Android下的JSON处理
- OpenWrt下使用netperf测试网络性能
- 0928_网络运维-Python GUI
- http请求方法与响应状态码
- python 网络编程
- Linux tcpdump命令详解
- Linux服务器上监控网络带宽的18个常用命令
- linux性能问题(CPU,内存,磁盘I/O,网络)
- 《TCP/IP作品详细解释2:达到》注意事项--IP地址
- C#网络编程
- 网络攻击知识之几种IP地址攻击方式
- Java网络编程注意事项3
- https和http的区别