zoukankan      html  css  js  c++  java
  • ios UIApplication简单使用

    每个app有且只有一个UIApplication对象,当程序启动的时候通过调用UIApplicationMain方法得到的。可以通过sharedApplication方法得到。

    UIApplication对象的主要任务是处理用户事件的处理路径,例如分发一个UIEvent到另外一个对象去处理。UIApplication对象持有众多的UIWindow对象,因此可以组织app的展示。UIApplication对象还能处理一些资源,例如通过openURL:打开邮箱客户端或者设置界面等。

    获得UIApplication对象

     [UIApplication sharedApplication]

    获得UIApplicationDelegate对象

    [[UIApplication sharedApplication] delegate]

    获得UIWindow对象

    [[UIApplication sharedApplication] windows];   //UIWindow数组
    [[UIApplication sharedApplication] keyWindow]; //UIWindow数组中最后调用makeKeyAndVisible方法的UIWindow对象

    控制和处理UIEvent

     - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

    {//分发一个event到另外一个对象去处理
        [[UIApplication sharedApplication] sendAction:@selector(action: forEvent:) to:[CustomHandler sharedCustomHandler] from:self forEvent:event];
    }
    [[UIApplication sharedApplication] beginIgnoringInteractionEvents]; //开始忽略Event
    //...中间调用动画等操作
    [[UIApplication sharedApplication] endIgnoringInteractionEvents];   //结束忽略Event
    [UIApplication sharedApplication].applicationSupportsShakeToEdit = YES;  //晃动是否有撤销或者重做动作

    打开URL资源 

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];//打开设置界面

    配置通知设置 

     UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert;

    UIUserNotificationSettings  *mySettings  = [UIUserNotificationSettings settingsForTypes:types categories:nil];
    [[UIApplication sharedApplication] registerUserNotificationSettings:mySettings]; //注册远程推送通知
    [[UIApplication sharedApplication] registerForRemoteNotifications];//注册
    [[UIApplication sharedApplication] unregisterForRemoteNotifications];//注销
        NSDate *date = [NSDate dateWithTimeIntervalSinceNow:10];
        UILocalNotification *localNotif = [[UILocalNotification alloc] init];
        localNotif.fireDate = date;  //时间
        localNotif.timeZone = [NSTimeZone localTimeZone]; //时区
        localNotif.repeatInterval = NSCalendarUnitMinute; //间隔
        localNotif.soundName = UILocalNotificationDefaultSoundName; //声音
        localNotif.alertBody = @"Local Test";   //通知内容
        localNotif.applicationIconBadgeNumber = 1;  //数字标示
        localNotif.userInfo = @{@"key":@"test"};    //info
        [[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; //注册通知
        [[UIApplication sharedApplication] presentLocalNotificationNow:localNotif]; //立即通知
        [[UIApplication sharedApplication] cancelAllLocalNotifications]; //取消所有通知
        [[UIApplication sharedApplication] cancelLocalNotification:localNotif]; //取消特定的通知
        
        NSArray *arr = [[UIApplication sharedApplication] scheduledLocalNotifications];  //所有的通知

    后台运行相关 

         [[UIApplication sharedApplication] applicationState]; //app状态  

        [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:3600]; //设置后台运行时间
        NSTimeInterval remainTime = [[UIApplication sharedApplication] backgroundTimeRemaining]; //app后台运行的时间
        NSLog(@"remainTIme = %f",remainTime);
        int state = [[UIApplication sharedApplication] backgroundRefreshStatus]; //后台刷新的状态
        NSLog(@"state = %d",state);
        [[UIApplication sharedApplication] beginBackgroundTaskWithName:@"taskOne" expirationHandler:^{
        }];
        [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ 
        }];
        [[UIApplication sharedApplication] endBackgroundTask:1];

    远程的控制相关 

         [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

        [[UIApplication sharedApplication] endReceivingRemoteControlEvents];

    系统的Idle Timer 

    [UIApplication sharedApplication].idleTimerDisabled = YES; //不让手机休眠

    APP样式 

        //隐藏状态条

        [[UIApplication sharedApplication] setStatusBarHidden:YES];

        [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
        //设置状态条的样式
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
        [[UIApplication sharedApplication] statusBarStyle];
        //状态条的Frame
        [[UIApplication sharedApplication] statusBarFrame];
        //网络是否可见
        [[UIApplication sharedApplication] isNetworkActivityIndicatorVisible];
        //badge数字
        [UIApplication sharedApplication].applicationIconBadgeNumber = 2;
        //屏幕的方向
        [[UIApplication sharedApplication] userInterfaceLayoutDirection];

    设置状态条的方向 

     [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:YES];

    数据类型 

     UIBackgroundTaskIdentifier : Int

    typedef enum : NSUInteger {
       UIRemoteNotificationTypeNone    = 0,
       UIRemoteNotificationTypeBadge   = 1 << 0,
       UIRemoteNotificationTypeSound   = 1 << 1,
       UIRemoteNotificationTypeAlert   = 1 << 2,
       UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3
    } UIRemoteNotificationType;
    typedef enum : NSInteger {
       UIStatusBarStyleDefault,
       UIStatusBarStyleLightContent,
       
       UIStatusBarStyleBlackTranslucent,
       UIStatusBarStyleBlackOpaque
    } UIStatusBarStyle;
    typedef enum : NSInteger {
       UIStatusBarAnimationNone,
       UIStatusBarAnimationFade,
       UIStatusBarAnimationSlide,
    } UIStatusBarAnimation;
    typedef enum : NSInteger  {
       UIApplicationStateActive ,
       UIApplicationStateInactive ,
       UIApplicationStateBackground 
    } UIApplicationState;
    const UIBackgroundTaskIdentifier  UIBackgroundTaskInvalid ;
    const NSTimeInterval  UIMinimumKeepAliveTimeout;
    typedef enum : NSUInteger  {
       UIBackgroundFetchResultNewData ,
       UIBackgroundFetchResultNoData ,
       UIBackgroundFetchResultFailed 
    } UIBackgroundFetchResult;
    const NSTimeInterval  UIApplicationBackgroundFetchIntervalMinimum ;
    const NSTimeInterval  UIApplicationBackgroundFetchIntervalNever;
    typedef enum : NSUInteger  {
       UIBackgroundRefreshStatusRestricted ,
       UIBackgroundRefreshStatusDenied ,
       UIBackgroundRefreshStatusAvailable 
    } UIBackgroundRefreshStatus;
    typedef enum : NSInteger  {
       UIInterfaceOrientationUnknown             = UIDeviceOrientationUnknown ,
       UIInterfaceOrientationPortrait            = UIDeviceOrientationPortrait ,
       UIInterfaceOrientationPortraitUpsideDown  = UIDeviceOrientationPortraitUpsideDown ,
       UIInterfaceOrientationLandscapeLeft       = UIDeviceOrientationLandscapeRight ,
       UIInterfaceOrientationLandscapeRight      = UIDeviceOrientationLandscapeLeft 
    } UIInterfaceOrientation;
    typedef enum : NSInteger  {
       UIUserInterfaceLayoutDirectionLeftToRight ,
       UIUserInterfaceLayoutDirectionRightToLeft ,
    } UIUserInterfaceLayoutDirection;
    NSString *const  UIApplicationOpenSettingsURLString;
    NSString *const  UIApplicationStatusBarOrientationUserInfoKey ;
    NSString *const  UIApplicationStatusBarFrameUserInfoKey;
    NSString *const  UIContentSizeCategoryExtraSmall ;
    NSString *const  UIContentSizeCategorySmall ;
    NSString *const  UIContentSizeCategoryMedium ;
    NSString *const  UIContentSizeCategoryLarge ;
    NSString *const  UIContentSizeCategoryExtraLarge ;
    NSString *const  UIContentSizeCategoryExtraExtraLarge ;
    NSString *const  UIContentSizeCategoryExtraExtraExtraLarge;
    NSString *const  UIContentSizeCategoryAccessibilityMedium ;
    NSString *const  UIContentSizeCategoryAccessibilityLarge ;
    NSString *const  UIContentSizeCategoryAccessibilityExtraLarge ;
    NSString *const  UIContentSizeCategoryAccessibilityExtraExtraLarge ;
    NSString *const  UIContentSizeCategoryAccessibilityExtraExtraExtraLarge;
    NSString *const  UIApplicationInvalidInterfaceOrientationException;

    通知 

    UIApplicationBackgroundRefreshStatusDidChangeNotification

    UIApplicationDidBecomeActiveNotification

    UIApplicationDidChangeStatusBarFrameNotification

    UIApplicationDidChangeStatusBarOrientationNotification

    UIApplicationDidEnterBackgroundNotification

    UIApplicationDidFinishLaunchingNotification

    UIApplicationDidReceiveMemoryWarningNotification

    UIApplicationProtectedDataDidBecomeAvailable

    UIApplicationProtectedDataWillBecomeUnavailable

    UIApplicationSignificantTimeChangeNotification

    UIApplicationUserDidTakeScreenshotNotification

    UIApplicationWillChangeStatusBarOrientationNotification

    UIApplicationWillChangeStatusBarFrameNotification

    UIApplicationWillEnterForegroundNotification

    UIApplicationWillResignActiveNotification

    UIApplicationWillTerminateNotification

    UIContentSizeCategoryDidChangeNotification

     

  • 相关阅读:
    后期生成事件命令copy /y
    SevenZipShaper压缩类
    vs2017
    WCF路由服务
    微服务--
    各种流程图的绘画网路工具 processon
    ROC 准确率,召回率 F-measure理解(转载)
    Unix OpenCV安装
    转载:tar 解压缩命令~
    cppreference经验总结
  • 原文地址:https://www.cnblogs.com/sunfuyou/p/6182919.html
Copyright © 2011-2022 走看看