//@property(nonatomic,readonly) UIView *superview;
//获得自己的父控件对象//@property(nonatomic,readonly,copy) NSArray *subviews;
获得自己的所有子控件对象//@property(nonatomic) NSInteger tag;
//控件的ID\标识,父控件可以通过tag来找到对应的子控件//@property(nonatomic) CGAffineTransform transform;
//控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)//@property(nonatomic) CGRect frame;
//控件所在矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)//@property(nonatomic) CGRect bounds;
//控件所在矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x\y一般为0)//@property(nonatomic) CGPoint center;
//控件中点的位置(以父控件的左上角为坐标原点) //在UIKit中,坐标系的原点(0,0)在左上角,x值向右正向延伸,y值向下正向延伸 //- (void)addSubview:(UIView *)view; //添加一个子控件view//- (void)removeFromSuperview;
//从父控件中移除//- (UIView *)viewWithTag:(NSInteger)tag;
//根据一个tag标识找出对应的控件(一般都是子控件)
//通过修改控件的frame属性就可以修改控件在屏幕上的位置和尺寸
//比如点击“向上”按钮,让按钮的y值减小即可
- (IBAction)top:(UIButton *)sender { CGRect btnFrame = self.headBtn.frame; btnFrame.origin.y -= 10; self.headBtn.frame = btnFrame; }//下面代码是错误的,OC语法规定:不允许直接修改对象的结构体属性的成员
self.headBtn.frame.origin.y -= 10; //如果发现通过代码无法修改控件的位置或者尺寸时,应该去掉storyboard里面的autolayout功能,这是自iOS6开始出现的特性//顾名思义,autolayout是用来自动布局的,用来束缚控件的位置和尺寸。去掉这个功能,控件的位置和尺寸就不再有一些固定的束缚。
Size Class 让你可以使用一个storyboard来满足所有的设备,它一般与Autolayout结合使用 在开发过程中,并不是每次都通过storyboard拖控件完成UI界面,因为storyboard上面的界面是“固定死”的,有时候可能会在程序运行过程中动态地添加一些新的控件到界面上 比如QQ的聊天信息,是有人发出一条信息后才动态显示出来的。因此,需要掌握如何用代码动态地添加控件 实际上,storyboard的本质就是根据图形界面描述转成相应的代码下面演示用代码创建按钮
// 1.创建一个自定义的按钮
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];// 2.添加按钮
[self.view addSubview:btn];// 3.设置按钮的位置和尺寸
btn.frame = CGRectMake(100, 100, 100, 100);// 4.监听按钮点击(点击按钮后就会调用self的btnClick方法)
[btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside]; // 5.设置按钮在默认状态下的属性 // 5.1.默认状态的背景 [btn setBackgroundImage:[UIImage imageNamed:@"btn_01"] forState:UIControlStateNormal]; // 5.2.默认状态的文字 [btn setTitle:@"点我啊" forState:UIControlStateNormal]; // 5.3.默认状态的文字颜色 [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];// 6.设置按钮在高亮状态下的属性
// 6.1.高亮状态的背景 [btn setBackgroundImage:[UIImage imageNamed:@"btn_02"] forState:UIControlStateHighlighted]; // 6.2.高亮状态的文字 [btn setTitle:@"摸我干啥" forState:UIControlStateHighlighted]; // 6.3.高亮状态的文字颜色 [btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted]; // 创建一个自定义的按钮 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; // 默认状态的背景 [btn setBackgroundImage:[UIImage imageNamed:@"btn_01"] forState:UIControlStateNormal]; // 默认状态的文字 [btn setTitle:@"点我啊" forState:UIControlStateNormal]; // 默认状态的文字颜色 [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];