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
UIApplication详解再解-备的更多相关文章
- SQL_Server_2008定期自动备份详细图解
SQL_Server_2008定期自动备份详细图解 设置自动数据库的定期备份计划. http://wenku.baidu.com/link?url=Tu ...
- linux下如何打包压缩?解包解压?.tar文件.gz文件
===文件打包.压缩 ==打包 tar [root@521478.com]# tar -cvf etc1.tar /etc //c创建 v详细 f打包后文件名 [root@521478.com]# t ...
- iOS之UIApplication详解
UIApplication对象特点: 特点1: UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序,而且是单例的.(用来封装整个应用程序的一个对象, ...
- 【转】iOS UIApplication详解
1.状态栏UIStateBar的设置是在UIApplication里面设置的,它包含4中风格 2. - (void)beginIgnoringInteractionEvents; (void)endI ...
- UIApplication详解
每个app有且只有一个UIApplication对象,当程序启动的时候通过调用UIApplicationMain方法得到的.可以通过sharedApplication方法得到. UIApplicati ...
- javascript运行机制详解: 再谈Event Loop(转)
作者: 阮一峰 日期: 2014年10月 8日 一年前,我写了一篇<什么是 Event Loop?>,谈了我对Event Loop的理解. 上个月,我偶然看到了Philip Roberts ...
- Jenkins通过FTP上传站点太多文件导致太慢且不稳定,切换为压包上传再解压的思路(asp.net)
在本地先处理好要上传的站点文件之后,可能会因为一些网页切图导致ftp上传不稳定,中断,或者文件占用的问题. 那么换了一种实现思路,要借助jenkins的工具jenkins-cli.jar. 解决思路: ...
- 工控安全入门(三)—— 再解S7comm
之前的文章我们都是在ctf的基础上学习工控协议知识的,显然这样对于S7comm的认识还不够深刻,这次就做一个实战补全,看看S7comm还有哪些值得我们深挖的地方. 本篇是对S7comm的补全和实战,阅 ...
- Django ORM中使用update_or_create功能再解
以前,我解过这个问题,现在百度搜索,发了像也只能找到我这个帖子. https://www.cnblogs.com/aguncn/p/4922654.html 今天,看了看官方文档,关于这个update ...
随机推荐
- JavaScript 中的数字和日期类型
本章节介绍如何掌握Javascript里的数字和日期类型 数字EDIT 在 JavaScript 里面,数字都是双精度浮点类型的 double-precision 64-bit binary form ...
- 在Linux上配置vsftpd
一般安装好vsftpd这个服务,它的默认配置文件在这里:/etc/vsftpd/vsftpd.conf 用vim在里面可以添加一些变量控制权限之类的.还有很多chroot相关的东西,里面的变量都有作用 ...
- word 生成目录
生成目录: (1)Ctrl+End,到达文档的最后一页: (2)"插入"菜单--引用--索引和目录(此时出现索引和目录对话框): (3)单击"目录"选项卡 a. ...
- Graphviz-Gdot语言学习
GVEdit这个绘图软件呢我也是刚接触的,感觉画起图来还是很爽的...尤其很熟悉c++后很容易上手这门dot语言. 先看一下十分清新的编程界面: 没有天下最邪恶的语法加亮,没有缩进行...这又算什么! ...
- 将大型 Page Blob 的页范围进行分段
Windows Azure 存储支持一种 Blob 类型,即 Page Blob.Page Blob 通过仅将已写入但未清除的页存入物理存储, 来有效存储稀疏数据.每页大小为 512 字节.Ge ...
- 黑马程序员_Java_collections and Arrays(工具类)
collections collections工具类方法 1,static <T extends Comparable<? super T>> void sort(List&l ...
- cf435A Queue on Bus Stop
A. Queue on Bus Stop time limit per test 1 second memory limit per test 256 megabytes input standa ...
- MySQL 遇到的问题:在服务里找不到自己的 MySQL,以及在命令行窗口中运行服务出现的问题。
1.用数据库的时候在服务里找不到自己的 MySQL ,于是就想用命令行窗口去运行. ①.在开始里,键入 cmd ,打开命令行窗口. ②.输入:mysql -u root -p 回车,这时会提示请输入密 ...
- java.lang.String小测试
还记得java.lang.String么,如果现在给你一个小程序,你能说出它的结果么 public static String ab(String a){ return a + "b&quo ...
- [RxJS] Creation operator: of()
RxJS is a lot about the so-called "operators". We will learn most of the important operato ...