UIApplication详解

来源:互联网 发布:期货模拟盘软件 编辑:程序博客网 时间:2024/05/20 00:12

http://www.open-open.com/lib/view/open1420634129218.html

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

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

获得UIApplication对象


?
1
[UIApplication sharedApplication]
获得UIApplicationDelegate对象
?
1
[[UIApplication sharedApplication] delegate]
获得UIWindow对象
?
1
2
[[UIApplication sharedApplication] windows];  //UIWindow数组
[[UIApplication sharedApplication] keyWindow];//UIWindow数组中最后调用makeKeyAndVisible方法的UIWindow对象
控制和处理UIEvent


?
1
2
3
4
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{//分发一个event到另外一个对象去处理
    [[UIApplication sharedApplication] sendAction:@selector(action: forEvent:) to:[CustomHandler sharedCustomHandler] from:self forEvent:event];
}
?
1
2
3
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];//开始忽略Event
//...中间调用动画等操作
[[UIApplication sharedApplication] endIgnoringInteractionEvents];  //结束忽略Event
?
1
[UIApplication sharedApplication].applicationSupportsShakeToEdit = YES; //晃动是否有撤销或者重做动作
打开URL资源


?
1
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];//打开设置界面
配置通知设置


?
1
2
3
UIUserNotificationType  types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
UIUserNotificationSettings  *mySettings  = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];//注册远程推送通知
?
1
2
[[UIApplication sharedApplication] registerForRemoteNotifications];//注册
[[UIApplication sharedApplication] unregisterForRemoteNotifications];//注销
?
1
2
3
4
5
6
7
8
9
10
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];//注册通知
?
1
2
3
4
5
[[UIApplication sharedApplication] presentLocalNotificationNow:localNotif];//立即通知
[[UIApplication sharedApplication] cancelAllLocalNotifications];//取消所有通知
[[UIApplication sharedApplication] cancelLocalNotification:localNotif];//取消特定的通知
 
NSArray *arr = [[UIApplication sharedApplication] scheduledLocalNotifications]; //所有的通知
后台运行相关


?
1
2
3
4
5
6
7
8
9
10
11
[[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];
远程的控制相关


?
1
2
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
系统的Idle Timer


?
1
[UIApplication sharedApplication].idleTimerDisabled = YES;//不让手机休眠
APP样式


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//隐藏状态条
[[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];
设置状态条的方向


?
1
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:YES];
数据类型


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


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
UIApplicationBackgroundRefreshStatusDidChangeNotification
UIApplicationDidBecomeActiveNotification
UIApplicationDidChangeStatusBarFrameNotification
UIApplicationDidChangeStatusBarOrientationNotification
UIApplicationDidEnterBackgroundNotification
UIApplicationDidFinishLaunchingNotification
UIApplicationDidReceiveMemoryWarningNotification
UIApplicationProtectedDataDidBecomeAvailable
UIApplicationProtectedDataWillBecomeUnavailable
UIApplicationSignificantTimeChangeNotification
UIApplicationUserDidTakeScreenshotNotification
UIApplicationWillChangeStatusBarOrientationNotification
UIApplicationWillChangeStatusBarFrameNotification
UIApplicationWillEnterForegroundNotification
UIApplicationWillResignActiveNotification
UIApplicationWillTerminateNotification
UIContentSizeCategoryDidChangeNotification

0 0
原创粉丝点击