一、UIView(视图控件)
1.在屏幕上能看得见、摸得着的东西,都是UIView对象
2.任何UIView都可以充当其他UIView的容器
3.关于UIView的一些疑问
1> 谁来管理UIView的生命周期(创建和销毁UIView)?
2> 谁来给UIView提供数据?
3> 谁来处理UIView的事件?
上面三个问题的答案都是UIViewController
4.UIView的位置是相对于父控件的,以父控件的左上角为坐标原点,X值向右增加,y值向下增加
5.常用属性
1> superview 父控件
2> subviews 所有的子控件
3> frame : 在父控件坐标系中的位置和尺寸(可以用来修改位置和尺寸)
4> bounds : 在自己坐标系中的位置和尺寸 (bounds的x、y永远是0,只可以用来修改尺寸)
5> center : 控件的中点在父控件坐标系中的位置
6> tag : 控件的标识,父控件可以通过tag属性找到对应的子控件
6.常用方法
1> viewWithTag: 通过tag属性找到对应的子控件
2>
二、UIViewController
1.每个控制器内部都有个默认的UIView属性
三、UIWindow(窗口,一般是全屏的)
1.每个app都有自己的窗口
2.app之所以能显示东西,完全是因为它有窗口
2.UIWindow继承自UIView
四、打开程序做了什么事情?
1.加载程序的一些资源
2.资源加载完毕后会创建属于app自己的窗口(UIWindow)
3.创建app的第一个控制器,控制器会初始化它内部的UIView
4.把第一个控制器的UIView添加到窗口中,于是控制器的UIView就显示在屏幕上
五、控制器如何初始化它内部的view
1> 通过代码
[[UIView alloc] init];
2> 通过xib文件
六、xib文件
1.跟nib是同义词
2.本质是xml文件
3.Interface Builder工具专门用来解析xib文件,以图形界面的形式展示给开发者看
4.xcode已经集成了Interface Builder工具
5.xib文件的加载过程
1> 加载xib文件的时候需要传入一个File's Owner对象
2> 创建Objects下面的所有对象
3> 检查File's Owner跟Objects下面对象的关联关