1.在开发中,我们很多时候需要动态创建控件.在创建控件的时候给控件设置一个tag值,利用这个tag值来操作控件.
2.创建控件一般要设置控件的大小和位置,这两个属性是最重要的.最后利用addSubview:方法将控件添加到指定的容器即可.
3.通过tag获取控件然后操作控件的属性等,我们可以遍历父控件,通过tag找到指定的控件.
4.给按钮添加单击事件要利用addTarget:(id) action:(sel) forControlEvents:UIControlEvents)方法,这个方法有3个参数,第一个是参数是id,即要调用方法的那个控件;第二个参数是sel,即要执行的方法,因为是SEL类型,所以要利用@selector(方法名);第三个参数是给该控件添加的事件,如UIControlEventTouchUpInside单击事件.
以下是实操代码
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
/**
* 创建一个UILabel控件并设置UILabel的属性
*/
UILabel *label1 = [[UILabel alloc]init];
label1.frame = CGRectMake(100, 100, 100, 60);
label1.text = @"hello man!";
label1.backgroundColor = [UIColor redColor];
label1.textColor = [UIColor yellowColor];
label1.textAlignment = NSTextAlignmentCenter;
label1.tag =1;
//添加UILabel到view上
[self.view addSubview:label1];
/**
* 创建一个UIButton控件,并设置button的属性
*/
UIButton *btn = [[UIButton alloc]init];
btn.frame = CGRectMake(180, 180, 100, 100);
btn.backgroundColor = [UIColor blueColor];
btn.tag = 2;
[btn setTitle:@"修改" forState:UIControlStateNormal];
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
//添加UIButton到view上
[self.view addSubview:btn];
//动态给UIButton添加事件
[btn addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
}
//定义一个事件action
- (IBAction)action:(UIButton *)sender{
//根据tag的值确定点击的是哪个按钮,然后修改按钮的内容和字体颜色
if (sender.tag ==2) {
[sender setTitle:@"点我干啥!" forState:UIControlStateNormal];
[sender setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
}
//遍历view的所有控件,通过tag找到UILabel修改UILabel的位置
for (UIView *lb1 in self.view.subviews) {
if (lb1.tag == 1) {
//新建一个CGRect保存lb1的frame,通过修改CGRect的origin然后将新的\
坐标赋值给lb1达到修改坐标的目的
CGRect frame1 =lb1.frame;
frame1.origin.x = 80;
frame1.origin.y = 80;
lb1.frame = frame1;
}
}
}
@end