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]
1
[[UIApplication sharedApplication] delegate]
1
2
[[UIApplication sharedApplication] windows];
//UIWindow数组
[[UIApplication sharedApplication] keyWindow];
//UIWindow数组中最后调用makeKeyAndVisible方法的UIWindow对象
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;
//晃动是否有撤销或者重做动作
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];
1
[UIApplication sharedApplication].idleTimerDisabled = YES;
//不让手机休眠
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
typedef
enum
: NSUInteger {
UIRemoteNotificationTypeNone = 0,
UIRemoteNotificationTypeBadge = 1 << 0,
UIRemoteNotificationTypeSound = 1 << 1,
UIRemoteNotificationTypeAlert = 1 << 2,
UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3
} UIRemoteNotificationType;
1
2
3
4
5
6
7
typedef
enum
: NSInteger {
UIStatusBarStyleDefault,
UIStatusBarStyleLightContent,
UIStatusBarStyleBlackTranslucent,
UIStatusBarStyleBlackOpaque
} UIStatusBarStyle;
1
2
3
4
5
typedef
enum
: NSInteger {
UIStatusBarAnimationNone,
UIStatusBarAnimationFade,
UIStatusBarAnimationSlide,
} UIStatusBarAnimation;
1
2
3
4
5
typedef
enum
: NSInteger {
UIApplicationStateActive ,
UIApplicationStateInactive ,
UIApplicationStateBackground
} UIApplicationState;
1
2
const
UIBackgroundTaskIdentifier UIBackgroundTaskInvalid ;
const
NSTimeInterval UIMinimumKeepAliveTimeout;
1
2
3
4
5
typedef
enum
: NSUInteger {
UIBackgroundFetchResultNewData ,
UIBackgroundFetchResultNoData ,
UIBackgroundFetchResultFailed
} UIBackgroundFetchResult;
1
2
const
NSTimeInterval UIApplicationBackgroundFetchIntervalMinimum ;
const
NSTimeInterval UIApplicationBackgroundFetchIntervalNever;
1
2
3
4
5
typedef
enum
: NSUInteger {
UIBackgroundRefreshStatusRestricted ,
UIBackgroundRefreshStatusDenied ,
UIBackgroundRefreshStatusAvailable
} UIBackgroundRefreshStatus;
1
2
3
4
5
6
7
typedef
enum
: NSInteger {
UIInterfaceOrientationUnknown = UIDeviceOrientationUnknown ,
UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait ,
UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown ,
UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight ,
UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft
} UIInterfaceOrientation;
1
2
3
4
typedef
enum
: 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
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解
- UIApplication详解(转贴)
- IOS UIApplication sharedApplication详解
- 国人开发开源软件TOP100
- iOS8新特性
- Bootstrap学习:面板
- nginx处理HTTP header问题
- BZOJ 3527 [Zjoi2014]力 FFT
- UIApplication详解
- STL——string分析
- 在惠普的一天天
- Bootstrap学习:Wells
- 对于 插入排序的简单讨论
- excel调整每一行相同的高度
- 打 正式包 崩溃!
- 程序启动原理和UIApplication
- poj 2976 Dropping tests 【0-1分数规划】