IBAction和IBOutlet
IBAction是返回值,相当于void,只有返回值是IBAction的方法,才能和storyboard中的控件进行连线
只有声明为IBOutlet的属性,才能跟storyboard中的控件进行连线
为了保证控件不被其他地方修改,让其变成私有变量,将它放在.m文件中声明
使用weak的原因是已经有强指针指向他
UIView
- 控件:屏幕上所有的UI元素都叫控件
属性:尺寸,位置,背景色
共同属性都抽取到UIView中
- 每一个控件都是一个容器,比较常见的还是用UIVIew作为容器
- 控制器是不可见的
- 每一个控制器都有一个UIVIew
- 能够看到的是View
- 每一个控制器中都有一个UIVIew的属性
- 控制器中管理的所有子控件都是该空间的子控件
常见方法
// 添加一个子控件view
- (void)addSubview:(UIVIew *)view;
// 将自己从父控件中移除
- (void)removeFromSuperview;
// 根据一个tag标识找出一个对应的控件(一般都是子控件)
- (UIView *)viewWithTag:(NSInteger)tag;
常见属性
// 控件矩形框在父控件中的位置和尺寸,以左上角为坐标原点
@property(nonatomic) CGRect frame;
label.frame = CGRectMake(0, 0, 100, 100);// 修改方式1
self.label.frame = CGRectMake(200, 100, 100, 50);
// 修改方式2
// 结构体是值传递,不是地址传递
CGRect frame = self.label.frame;
frame.origin.x -= 100;
frame.size.width += 50;
self.label.frame = frame;
// 控件矩形框的位置和尺寸,以自己左上角为坐标原点,bounds的x、y一般为0
@property(nonatomic) CGRect bounds;
//控件中点的位置
@property(nonatomic) CGPoint center;
viewDidLoad
/**1. 系统调用2. 控制器的View加载完毕的时候调用3. 控件的初始化,数据的初始化(懒加载)*/
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.
}
didReceiveMemoryWarning
/**1. 系统调用2. 当控制器就收到内存警告调用3. 取出一些不必要的内存,取出耗时的内存*/
- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}