UIView
•什么是控件?
-屏幕上的所有UI元素都叫做控件,也有人叫做视图、组件
-按钮(UIButton)、文本(UILabel)都是控件
•控件的共同属性有哪些?
-尺寸
-位置
-背景色
-......
-
•苹果将控件的共同属性都抽取到父类UIView中
-所有的控件最终都继承自UIView
-UIButton、UILabel都是继承自UIView(可以查看头文件)
父控件与子控件
•每个控件都是个容器,能容纳其他控件
-
•内部小控件是大控件的子控件
•
•大控件是内部小控件的父控件
•
•每一个控制器(UIViewController)内部都有个默认的UIView属性
-@property(nonatomic,retain) UIView *view;
-控制器中管理的其他所有控件都是这个view的子控件(直接或者间接)
UIView的常见方法
•- (void)addSubview:(UIView *)view;
Ø 添加一个子控件view
Ø
•- (void)removeFromSuperview;
Ø 从父控件中移除
•- (UIView *)viewWithTag:(NSInteger)tag;
Ø 根据一个tag标识找出对应的控件(一般都是子控件)
UIView的常见属性
•@property(nonatomic) CGRect frame;
Ø 控件矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)
•@property(nonatomic) CGRect bounds;
Ø 控件矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x、y一般为0)
n
•@property(nonatomic) CGPoint center;
Ø 控件中点的位置(以父控件的左上角为坐标原点)
UIKit坐标系
•在UIKit中,坐标系的原点(0,0)在左上角,x值向右正向延伸,y值向下正向延伸
官方文档
控制器和视图的关系:
- ViewController(视图控制器)最重要的作用是管理视图的层次结构
- 每一个视图控制器都有一个单一的根视图,该根视图用来显示控制器内容
- 视图控制器都强引用着根视图,并且每一个父视图都强引用着子视图
- 视图控制器中的的所有视图都是通过根视图进行管理