12th,May,2016
CGPoint {x,y} 坐标信息
CGSize {width,height} 宽度和高度
CGRect {origin,size} CGPoint和CGSize
UIScreen(屏幕): 父类是NSObject, 一般用来获取屏幕大小
CGRect screenBounds = [[UIScreen mainScreen] bounds]; // (0,0,width,height)
CGRect viewBounds = [[UIScreen mainScreen] applicationFrame]; // (0,20,widht,height-20)
ps: 状态栏的高度20px
UIWindow(窗口): 父类是UIView
应用程序只有一个窗口,表示为一个UIWindow类的实例。UIWindow是所有UIView的根,管理和协调应用程序的显示。一般应用程序只有一个UIWindow对象,即使有多个UIWindow对象(可手动创建多个UIWindow,同时加到程序里面),也只有一个UIWindow可以接受用户的触屏事件。
self.window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]] ;// 创建应用程序窗口时,应该总是将其初始的边框尺寸设置为整个屏幕的大小
作用:
1) 作为容器,包含app所要显示的所有视图
2) 传递触摸消息给程序中view和其他对象
3) 与UIViewController协同工作,方便完成设备方向旋转的支持
添加view到window的两种方法:
1) addSubview 采用该方法需保持view对应的viewController的有效性,不能过早释放.
2) 设置rootViewController UIWindow会负责viewController和view的生命周期的维护,防止其过早释放
WindowLevel:
UIWindow显示的时候会根据UIWindowLevel进行排序,即level高的将排在level低的前面。
typedef CGFloat UIWindowLevel;
const UIWindowLevel UIWindowLevelNormal; // 0
const UIWindowLevel UIWindowLevelAlert; // 2000
const UIWindowLevel UIWindowLevelStatusBar;// 1000
UIView(视图): 父类是UIResponder
视图可以实现任意深度的嵌套。视图控制器的作用是处理视图的卸载与装载,处理由于设备旋转导致的界面旋转,和用于构建复杂用户界面的高级导航对象进行交互。
视图回调:
1) -didAddSubview 调用addSubview成功后会发送该消息
2) -willRemoveSubview 回调通知父视图子视图即将被删除
3) -willMoveToSuperview 视图移动前会发送该消息
4) -didMoveToSuperview 会通知相关视图她们的上级视图已经变化
5) -willMoveToWindow
6) -didMoveToWindow 通知已经添加到窗口中
参考资料:
IOS学习记录 基础类UIWindow,UIView,UISreen篇
ios开发视图和窗口的一些东西,之前没有研究的那么细