IOS动态创建控件通过tag处理单击事件

来源:互联网 发布:2016年1月非农数据 编辑:程序博客网 时间:2024/04/30 03:05
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
0 0
原创粉丝点击