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

     

  • 相关阅读:
    Atitit 图片验证码功能设计文档总结目录1.1. 使用图片验证码img src标签设置图片。。验证码图片有png,jpg,svg等格式。。 11.2. Php png图像 11.3. P
    Atitt php script lan debug bp 最佳实践调试php目录1.1. Error_log 11.2. Echo vs log法 11.3. 输出与debug信息昏药问题
    Atitit 项目分析与统计目录1. 静态分析+动态分析 。其中, 12. 模块分析,与模块位置idx 13. 编程语言类型与版本 13.1. 类库统记表 类型与版本 23.2. 中间
    Atitit 增强代码健壮性 出错继续执行恢复模式,就像vbs那样我以为我可以使用Try/Catch,但是我找不到异常后是否可以继续执行代码,并且找不到如何在最后显示错误消息。目录PHP
    Atitit bootsAtitit bootstrap布局 栅格.docx目录1. 简述container与container-fluid的区别 11.1.1. 在bootstrap中的布局
    Atitit php读取数据库记录集合并循环修改展示//------------------------ini db sys$dbstr = “mysql:host=“ . $mysql_con
    Atitit 验证码功能修复总结文档原有的tp5里面的验证码不知怎么有问题了,试图在tp5框架内修复无果。。使用了新的验证码组件 “lifei6671/php-captcha“: “0.
    Atitt 支付业务 银行国际代码(SWIFT Code银行国际代码(SWIFT Code)是由SWIFT协会提出并被ISO通过的银行识别代码,凡该协会的成员银行都有自己特定的SWIFT代码
    Atitit img hot click link 图像背景拉伸100%Map area trouble..So body backgrd img mode...is easy...No
    Atitit doc mng 文档管理总结目录1. 主要几大内容 12. 存储管理 22.1. 一般来说 ,文档存储在IM网盘note邮箱blog wiki等地 22.2. 文档格式与体
  • 原文地址:https://www.cnblogs.com/sunfuyou/p/6182919.html
Copyright © 2011-2022 走看看