UIApplication对象是应用程序的象征,每一个应用都有自己的UIApplication对象,而且是单例的。
UIApplication
- UIApplication对象是应用程序的象征
- 每一个应用都有自己的UIApplication对象,而且是单例的。
- 通过
[UIApplication sharedApplication]
创建,创建单例基本以share
开头 - 一个iOS程序启动后创建的第一个对象就是UIApplication对象
- 利用UIApplication对象,能进行一些应用级别的操作,如:
- 设置提醒数字,得要注册用户通知
- 可以设置联网状态:将
NetworkActivityIndicatorVisible
属性设为YES - 可以设置状态栏:默认控制器管理,要在info文件中设置修改然后调用
setStatusBarHidden: withAnimation:
方法 - 可以打电话,发短信,打开网页:使用
OpenURl
方法 - 代理方法:系统自动生成
1 | // 设置提醒数字 |
UIWindow
- UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow
- iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了
- 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow。也就说,没有UIWindow,就看不见任何UI界面。
自定义
- 创建窗口,设置frame。
- 添加子控件,一般把窗口的根控制器添加上去,通过设置
rootViewController
就可以把根控制器的view添加到窗口上。 - 窗口显示。设置窗口的hiddle属性;应用程序是有主窗口,通常调用
makeKeyAndVisible
。 - 属性: windons属性,可以识别应用程序中哪些控件还是窗口,有一个比较特殊,状态栏。
window层级
- window层级,
alert(2000)
>statusBar(1000)
>normal(0)
- UIWindowLevel 本质是CGFloat 相同level的可以进行加减运算,调整优先级。
单例实现
- 不管怎么创建,只会分配一次内存
- 整个app中,只会分配一次
仿苹果实现单例
.h
文件
1 |
|
- .m文件
1 |
|