1. [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; //显示
  2. [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; //隐藏

让状态栏显示网络等待标志

状态栏是可以通过UIApplication类提供的一些方法来修改的,比如完全去掉状态栏或者修改风格,不过这些改变只是在你的程序内部,当你退出你的程序又会复原。

  1. UIApplication *myApp = [UIapplication sharedApplication];

复制代码

1.隐藏状态栏

  1. [myApp setStatusBarHidden:YES animated:YES];

复制代码

记得隐藏状态栏后的你的“桌面”就增加320×20的大小,所以最好是在任何window或者view创建之前隐藏它。

2.状态栏风格

  1. [myApp setStatusBarStyle: UIStatusbarStyleBlackOpaque];

复制代码

  1. typedef enum {
  2. UIStatusBarStyleDefault,
  3. UIStatusBarStyleBlackTranslucent,
  4. UIStatusBarStyleBlackOpaque
  5. } UIStatusBarStyle;

复制代码

3.状态栏方向

  1. [myApp setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:NO];

复制代码

  1. typedef enum {
  2. UIInterfaceOrientationPortrait           = UIDeviceOrientationPortrait,
  3. //竖屏,垂直向上
  4. UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
  5. //竖屏,垂直方向上下颠倒
  6. UIInterfaceOrientationLandscapeLeft      = UIDeviceOrientationLandscapeRight,
  7. //设备逆时针旋转到横屏模式
  8. UIInterfaceOrientationLandscapeRight     = UIDeviceOrientationLandscapeLeft
  9. //设备顺时针旋转到横屏模式
  10. } UIInterfaceOrientation;

复制代码

 

有时候,需要在状态栏上显示一些自定义信息,比如新浪微博的官方iOS客户端:告知用户信息处于发送队列、发送成功或者发送失败。

如上图,通过在状态栏显示自定义信息,可以给用户友好又不影响软件使用的提示。

为此,我们显得定义一个自定义状态栏类,包含一个显示信息的Label:

  1. @interface CustomStatusBar : UIWindow
  2. {
  3. UILabel *_messageLabel;
  4. }
  5. - (void)showStatusMessage:(NSString *)message;
  6. - (void)hide;
  7. @end

接着,设置大小和系统状态栏一致,背景为黑色:

  1. self.frame = [UIApplication sharedApplication].statusBarFrame;
  2. self.backgroundColor = [UIColor blackColor];

到这里,为了让自定义的状态栏可以让用户看到,还需要设置它的windowLevel。

在iOS中,windowLevel属性决定了UIWindow的显示层次。默认的windowLevel为UIWindowLevelNormal,即0.0。

系统定义了三个层次如下,具体可参考官方文档

  1. const UIWindowLevel UIWindowLevelNormal;
  2. const UIWindowLevel UIWindowLevelAlert;
  3. const UIWindowLevel UIWindowLevelStatusBar;
  4. typedef CGFloat UIWindowLevel;

为了能够覆盖系统默认的状态栏,我们把自定义的状态栏的windowLevel调高点:

  1. self.windowLevel = UIWindowLevelStatusBar + 1.0f;

最后,为显示信息和隐藏添加一点无伤大雅的动画:

    1. - (void)showStatusMessage:(NSString *)message
    2. {
    3. self.hidden = NO;
    4. self.alpha = 1.0f;
    5. _messageLabel.text = @"";
    6. CGSize totalSize = self.frame.size;
    7. self.frame = (CGRect){ self.frame.origin, 0, totalSize.height };
    8. [UIView animateWithDuration:0.5f animations:^{
    9. self.frame = (CGRect){ self.frame.origin, totalSize };
    10. } completion:^(BOOL finished){
    11. _messageLabel.text = message;
    12. }];
    13. }
    14. - (void)hide
    15. {
    16. self.alpha = 1.0f;
    17. [UIView animateWithDuration:0.5f animations:^{
    18. self.alpha = 0.0f;
    19. } completion:^(BOOL finished){
    20. _messageLabel.text = @"";
    21. self.hidden = YES;
    22. }];;
    23. }

iOS状态栏标志的更多相关文章

  1. IOS状态栏

    IOS状态栏是什么地方? 它是IOS设备屏幕顶部显示信号以及电池的区域.状态栏默认的高度是20像素,状态栏在软件开发中有何作用?联网应用中可在自动帮用户下载数据时使用,推荐在状态栏中予以显示.状态栏可 ...

  2. XE8 for iOS 状态栏的几种效果

    XE8 实现 iOS 状态栏的几种效果: 一.状态栏底色: 开一个新工程. 设定 Fill.Color 颜色属性. 设定 Fill.Kind = Solid. 无需修改任何官方源码. 二.隐藏状态栏( ...

  3. iOS状态栏颜色

    下面截图给出修改 iOS 状态栏颜色的 4 种方式 Target.png Info.plist.png Storyboard.png code.png 其中第四张图中的代码,直接写在你的任何一个 Vi ...

  4. iOS 状态栏和导航条配置

    iOS 状态栏和导航条配置 一:隐藏: [self.navigationController setNavigationBarHidden:YES animated:YES]; [[UIApplica ...

  5. IOS 状态栏 显示与隐藏网络活动状态

    IOS中显示和隐藏状态栏的网络活动标志 //在向服务端发送请求状态栏显示网络活动标志: [[UIApplication sharedApplication] setNetworkActivityInd ...

  6. ios状态栏的一些操作

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; //显示 [UIApplication sharedA ...

  7. iOS 状态栏管理

    iOS 7 以前:状态栏由 UIApplication 管理 1.隐藏状态栏 : application.statusBarHidden = NO; 2.设置状态栏样式 : application.s ...

  8. IOS 状态栏(UIStatusBar)

    ios上状态栏指的屏幕顶端的20像素高的部分 状态栏分前景和背景两部分 前景部分:就是指的显示电池.时间等部分: 背景部分:就是显示白色或者图片的背景部分: 如下图:前景部分为黑色字体,背景部分为白色 ...

  9. iOS 状态栏更改为白色

    如果觉得在iOS 7启动期间状态栏黑色不合你意,以下方法可改变Status bar style成白色 在工程的plist添加 Status bar style,改变style值 默认是Gray sty ...

随机推荐

  1. iOS: 详细的正则表达式

    一.简单的正则规则 1.由数字.26个英文字母或者下划线组成的字符串: ^[-9a-zA-Z_]{,}$ 2.非负整数(正整数 + 0 ): ^/d+$ 3. 正整数: ^[-]*[-][-]*$ 4 ...

  2. QT开发(十二)——QT事件处理机制

    一.QT事件简介 QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发.QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期. 常见的QT事件类型如下: 键盘事件: 按键按下和松开 ...

  3. go语言基础之获取命令行参数

    1.获取命令行参数 示例: package main //必须 import "fmt" import "os" func main() { list := o ...

  4. 不要让Javascript的等价表格看上去那么难看

    时不时的会有人贴出一张表格,用来展现javascript的 '==' 比较出来的结果.像最近的这个例子,看看这张表格有多么的无序. 这些文章基本上都是对的,他们指出 '==' 设计的很糟糕.但是他们通 ...

  5. 字符串转成整型(int)

    1 题目 Implement atoito convert a string to an integer. Hint: Carefullyconsider all possible input cas ...

  6. Python 爬虫 之 阅读呼叫转移(三)

    尽管上一篇博客中我们能够连续地阅读章节了,可是.难道每一次看小说都执行一下我们的 Python 程序?连记录看到哪里都不行,每次都是又一次来过?当然不能这样,改! 如今这么多小说阅读器,我们仅仅须要把 ...

  7. 华为E392-u92在 linux 2.6.34 内核环境下支持

    还是先说说思路吧.网关需要支持4G LTE网卡.如之前的操作,插上网卡后,usb-modeswitch 后没有产生对应的/dev/ttyUSB0-2. 所以ppp拨号脚本等无法工作.这里在ubuntu ...

  8. jQuery框架开发一个最简单的幻灯效果

    在线演示 在这个课程中,我们将介绍如何使用jQuery来开发一个最简单的图片幻灯效果. 立刻观看互动课程:jQuery框架开发一个最简单的幻灯效果 阅读原文:jQuery框架开发一个最简单的幻灯效果

  9. angularjs中ajax请求时传递参数的方法

    method1方法使用的是params参数,该用法会把参数直接附加到url中 method2方法使用的是data参数,该参数会把页面参数类型从默认的multipart/form-data改为appli ...

  10. vim 查找和替换命令 替换/n和\n

    一. 字符串的查找 1. vim 中用 / 和 ? 来查找字符串,两者的区别是: /string 会高亮显示光标后匹配的第一个字符串,回车后光标移到该字符串的第一个字母: ?string 会高亮显示光 ...