zoukankan      html  css  js  c++  java
  • 038改变状态栏的颜色(扩展知识:关于iOS不同版本的消息通知知识)

    效果如下:

    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, 20, 20)];
    13     lblMessage.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    14     lblMessage.text = @"需要在PL文件新增行View controller-based status bar appearance=NO;触摸画面后,切换状态条颜色";
    15     lblMessage.numberOfLines = 0;
    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 = 3; //应用程序图标的消息标记数
    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
  • 相关阅读:
    面经 收藏的 这可能不只是一篇面经
    2017网易秋招编程集合
    网易2017春招笔试真题编程题集合题解
    小朋友 排序
    网易编程题目 02 赶去公司
    网易有道2017内推选择题
    12,享元模式(Flyweight Pattern)是以共享的方式高效的支持大量的细粒度的对象。
    11,外观模式(Facade Pattern)是为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
    新手进行Oracle MIS系统开发的步骤
    Oracle常用查看表结构命令(一)
  • 原文地址:https://www.cnblogs.com/huangjianwu/p/4576484.html
Copyright © 2011-2022 走看看