UIApplication詳解

每一個app有且只有一個UIApplication對象,當程序啓動的時候經過調用UIApplicationMain方法獲得的。能夠經過sharedApplication方法獲得。html

UIApplication對象的主要任務是處理用戶事件的處理路徑,例如分發一個UIEvent到另一個對象去處理。UIApplication對象持有衆多的UIWindow對象,所以能夠組織app的展現。UIApplication對象還能處理一些資源,例如經過openURL:打開郵箱客戶端或者設置界面等。ios

得到UIApplication對象windows

 

[UIApplication sharedApplication]

得到UIApplicationDelegate對象數組

[[UIApplication sharedApplication] delegate]

得到UIWindow對象網絡

[[UIApplication sharedApplication] windows];   //UIWindow數組
[[UIApplication sharedApplication] keyWindow]; //UIWindow數組中最後調用makeKeyAndVisible方法的UIWindow對象

控制和處理UIEventapp

 

 

- (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資源 ide

 

 

[[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];  //全部的通知

後臺運行相關 htm

 

 

    [[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轉自:http://www.open-open.com/lib/view/open1420634129218.html
相關文章
相關標籤/搜索