UIView是视图的基类,UIViewController是视图控制器的基类,UIResponder是表示一个可以在屏幕上响应触摸事件的对象;

一、UIWindow是一种特殊的UIView,通常在一个程序中只会有一个UIWindow,但可以手动创建多个UIWindow,同时加到程序里面。UIWindow在程序中主要起到三个作用:

  1、作为容器,包含app所要显示的所有视图

  2、传递触摸消息到程序中view和其他对象

  3、与UIViewController协同工作,方便完成设备方向旋转的支持

二、通常我们可以采取两种方法将view添加到UIWindow中:

  1、addSubview

  直接将view通过addSubview方式添加到window中,程序负责维护view的生命周期以及刷新,但是并不会为去理会view对应的ViewController,因此采用这种方法将view添加到window以后,我们还要保持view对应的ViewController的有效性,不能过早释放。

  2、rootViewController

  rootViewController时UIWindow的一个遍历方法,通过设置该属性为要添加view对应的ViewController,UIWindow将会自动将其view添加到当前window中,同时负责ViewController和view的生命周期的维护,防止其过早释放

主窗口(key window)接受特定事件

  一个窗口当前能接受键盘和非触摸事件时,便被认为是主窗口。而触摸事件则被投递到触摸发生的窗口,没有相应坐标值的事件被投递到主窗口。同一时刻只有一个窗口是主窗口。

  大部分时间内,应用窗口是主窗口。由于iOS使用单独的窗口来显示警告视图(alert view)和输入附件视图(input accessory view),这些窗口也可以成为主窗口。例如,当一个讲稿视图或者输入附件视图有一个文本框,而用户当前正在这个文本框中输入,那么包含此输入视图的窗口便是主窗口。

  绝大多数应用窗口处在同一等级

  当你为应用创建一个新窗口时,UIVindow类自动赋给它一个等级,称为正常窗口等级(normal window level),这个等级对显示应用相关内容的窗口是合适的。这个等级,可以通过windowLevel属性来设置,它代表窗口相对其他窗口在z轴所处的位置。你可以使与应用相关的窗口在其他等级显示,但这不是必须的。

  除了用于显示应用相关内容的窗口外,还有一些高等级的窗口,他们显示一些需要悬浮在应用内容之上的信息。例如系统状态栏和警告等。

具体关于keyWindow和WindowLevel的详情可以参考:http://www.cnblogs.com/smileEvday/archive/2012/11/16/UIWindow.html

最新文章

  1. textarea输入回车,前台jsp不回车问题解决
  2. C#读取XML文件的基类实现
  3. 破解 “PEDIY CrackMe 2007” 之 KeygenMe_1_by_boonz
  4. Android 获取本地图片
  5. Bone Collector II
  6. 《Python核心编程》 第十章 错误和异常
  7. easy ui window 相关属性
  8. block的是发送信号的线程,又不是处理槽函数的线程
  9. CodeForces 591A
  10. Hash Map (Hash Table)
  11. Spring AspectJ的Execution表达式-备忘笔记
  12. Java IO学习笔记二
  13. struts2 action接收请求参数和类型转换
  14. 移动端h5 实现多个音频播放
  15. element框架中表格的筛选功能使用说明(转载)
  16. 使用phpexcel上传下载excel文件
  17. caffe.pb.h丢失问题解决方法
  18. MYSQL + MHA +keepalive + VIP安装配置(二)--MHA的配置
  19. Lua中的模块与module函数详解
  20. Django配合MySQL学习Django模型外键的建立和使用

热门文章

  1. Java得到一个整数的绝对值,不使用任何判断和比较语句,包括API.
  2. C#中的扩展类的理解
  3. JAVA开源爬虫列表及简介
  4. Windows驱动开发-r3和r0通信
  5. iOS 枚举ENUM和OPTIONS的区别
  6. loadBeanDefinitions方法源码跟踪(三)
  7. obtainFreshBeanFactory方法源码跟踪
  8. hook框架frida的安装以及简单实用案例
  9. 023、MySQL取文本长度取字符串长度
  10. 八数码问题 双向BFS/Hsh链表存储