效果如下:

ViewController.h

  1. #import <UIKit/UIKit.h>
  2.  
  3. @interface ViewController : UIViewController
  4. @end

ViewController.m

  1. #import "ViewController.h"
  2.  
  3. @interface ViewController ()
  4. - (void)userNotificationDidPush:(UIApplication *)application;
  5. @end
  6.  
  7. @implementation ViewController
  8.  
  9. - (void)viewDidLoad {
  10. [super viewDidLoad];
  11.  
  12. UILabel *lblMessage = [[UILabel alloc] initWithFrame:CGRectInset(self.view.bounds, , )];
  13. lblMessage.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
  14. lblMessage.text = @"需要在PL文件新增行View controller-based status bar appearance=NO;触摸画面后,切换状态条颜色";
  15. lblMessage.numberOfLines = ;
  16. lblMessage.textAlignment = NSTextAlignmentCenter;
  17. lblMessage.textColor = [UIColor brownColor];
  18. lblMessage.backgroundColor = [UIColor whiteColor];
  19. [self.view addSubview:lblMessage];
  20.  
  21. self.navigationItem.prompt = @"看看状态栏的颜色变化";
  22. self.navigationItem.title = @"改变状态栏的颜色";
  23. }
  24.  
  25. - (void)didReceiveMemoryWarning {
  26. [super didReceiveMemoryWarning];
  27. // Dispose of any resources that can be recreated.
  28. }
  29.  
  30. - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
  31. UIApplication *application = [UIApplication sharedApplication];
  32. //状态栏样式切换
  33. if (application.statusBarStyle == UIStatusBarStyleDefault) {
  34. application.statusBarStyle = UIStatusBarStyleLightContent;
  35. } else {
  36. application.statusBarStyle = UIStatusBarStyleDefault;
  37. }
  38.  
  39. [self userNotificationDidPush:application];
  40. }
  41.  
  42. /**
  43. * 扩展知识:关于iOS不同版本的消息通知知识
  44. *
  45. * @param application 共享的UIApplication单例模式对象实例
  46. */
  47. - (void)userNotificationDidPush:(UIApplication *)application {
  48. //应用程序图标标记数
  49. //因为registerUserNotificationSettings方法为iOS8的方法,无法在iOS8以下版本使用;所以需要分别处理
  50. if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
  51. UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
  52. [application registerUserNotificationSettings:settings];
  53. } else {
  54. [application registerForRemoteNotifications];
  55. }
  56. application.applicationIconBadgeNumber = ; //应用程序图标的消息标记数
  57. //self.tabBarItem.badgeValue = @"3"; //底部选项卡的消息标记数
  58.  
  59. /* 判断Push推送通知是否打开;同上面一样道理需要分别处理
  60. UIRemoteNotificationType types;
  61. if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
  62. types = [[UIApplication sharedApplication] currentUserNotificationSettings].types;
  63. } else {
  64. types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
  65. }
  66. BOOL isEnabledNotification = types & UIRemoteNotificationTypeAlert;
  67. */
  68. }
  69.  
  70. @end

AppDelegate.h

  1. #import <UIKit/UIKit.h>
  2.  
  3. @interface AppDelegate : UIResponder <UIApplicationDelegate>
  4. @property (strong, nonatomic) UIWindow *window;
  5. @property (strong, nonatomic) UINavigationController *navigationController;
  6.  
  7. @end

AppDelegate.m

  1. #import "AppDelegate.h"
  2. #import "ViewController.h"
  3.  
  4. @interface AppDelegate ()
  5. @end
  6.  
  7. @implementation AppDelegate
  8.  
  9. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  10. _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  11. ViewController *viewController = [[ViewController alloc] init];
  12. _navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
  13. _window.rootViewController = _navigationController;
  14. [_window addSubview:_navigationController.view];
  15. [_window makeKeyAndVisible];
  16. return YES;
  17. }
  18.  
  19. - (void)applicationWillResignActive:(UIApplication *)application {
  20. }
  21.  
  22. - (void)applicationDidEnterBackground:(UIApplication *)application {
  23. }
  24.  
  25. - (void)applicationWillEnterForeground:(UIApplication *)application {
  26. }
  27.  
  28. - (void)applicationDidBecomeActive:(UIApplication *)application {
  29. }
  30.  
  31. - (void)applicationWillTerminate:(UIApplication *)application {
  32. }
  33.  
  34. @end

038改变状态栏的颜色(扩展知识:关于iOS不同版本的消息通知知识)的更多相关文章

  1. Android学习第八弹之改变状态栏的颜色使其与APP风格一体化

    公众号:smart_android 作者:耿广龙|loonggg 点击"阅读原文",可查看更多内容和干货 导语:沉浸式状态栏,改变状态栏的颜色使之与APP风格一体化是不是感觉很漂亮 ...

  2. iOS7改变状态栏文字颜色

    1在Info.plist中设置UIViewControllerBasedStatusBarAppearance 为NO2 在需要改变状态栏颜色的 AppDelegate中在 didFinishLaun ...

  3. 【iOS学习笔记】改变状态栏字体颜色

    Step1. info.plist中设置UIViewControllerBasedStatusBarAppearance为NO Step2. AppDelegate.m中添加 - (BOOL)appl ...

  4. 把所有界面的状态栏字体颜色设置为白色--iOS开发系列---项目中成长的知识一

    第一步: 在info.plist中 View controller-based status bar appearance这个属性设置为 View controller-based status ba ...

  5. colorPrimaryDark无法改变状态栏颜色

    设置完colorPrimaryDark后,这个颜色是改变状态栏的颜色的, colorPrimary是改变标题栏背景色的 发现状态栏一直是灰色. 然后在布局文件中 AndroidMainifest.xm ...

  6. 关于在ios7之后改变状态栏颜色

    看到网上都说 在ios7之后要这样设置 首先,须要在Info.plist配置文件里,添加键:UIViewControllerBasedStatusBarAppearance,并设置为YES: 然后,在 ...

  7. iOS7默认状态栏文字颜色为黑色,项目需要修改为白色。

    1在Info.plist中设置UIViewControllerBasedStatusBarAppearance 为NO2 在需要改变状态栏颜色的 AppDelegate中在 didFinishLaun ...

  8. iOS6 与iOS7以及7以上状态栏的颜色设置

    iOS7默认状态栏文字颜色为黑色 修改为白色的方法:(chenyong注意 我的Status bar style 使用的仍是默认值Gray style(default)) 1在Info.plist中设 ...

  9. iOS之 状态栏字体颜色的设置

    前一段时间接手一个项目后,熟悉的过程中发现了不少问题,其中有一个就是关于状态栏的问题. 我们都知道:状态栏字体颜色在不同界面不一样的,原因是系统设置的时候把状态栏的字体颜色的界面控制器设置的yes. ...

随机推荐

  1. 2. 感知机(Perceptron)基本形式和对偶形式实现

    1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...

  2. Virtual DOM 虚拟DOM的理解(转)

    作者:戴嘉华 转载请注明出处并保留原文链接( #13 )和作者信息. 目录: 1 前言 2 对前端应用状态管理思考 3 Virtual DOM 算法 4 算法实现 4.1 步骤一:用JS对象模拟DOM ...

  3. 调整Intellij IDEA内存

    最近IDEA真是卡的要死,下面

  4. PCL库简要说明

    PCL(PointCloudLibrary)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取.滤波.分割.配准.检索. ...

  5. gclient多源码管理工具 DEPS文件

    gclient来管理源码的checkout, update等. gclient是google专门为这种多源项目编写的脚本,它可以将多个源码管理系统中的代码放在一起管理.甚至包括将Git和svn代码放在 ...

  6. 更快的方式实现 PHP 数组去重

    概述 使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组.这个函数大多数情况下都能工作得很好.但是,如果你尝试在一个大的数组里使用array_u ...

  7. win7 64位操作系统中 Oracle 11g 安装教程(图解)

    1.下载Oracle 11g R2 for Windows版本,下载地址如下 官方网站: http://download.oracle.com/otn/nt/oracle11g/112010/win3 ...

  8. python 语法最佳实践

    1. 列表推倒 我们知道, 列表类似于数组, 列表里存储的都是对象, 所以列表中可以存储"数字","字符串" 等对象. 列表用中括号扩起, 然后逗号分隔 列表内 ...

  9. 微信小程序的json遍历

    入门教程之列表渲染多层嵌套循环,目前官方的文档里,主要是一维数组列表渲染的案例,还是比较简单单一,给刚入门的童鞋还是无从入手的感觉. <view wx:for="{{items}}&q ...

  10. USB学习笔记连载(十一):CY7C68013A的启动方式-EEPROM

       上述的应用笔记中有介绍FX2LP的启动选项,主要包括I2C启动和USB启动. 说白了I2C启动需要使用外部的EEPROM,USB启动,只是使用上位机控制软件将配置程序FX2LP中,不用EEPRO ...