创建一个按钮
- (void)creatBtn {
UIButton * btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(100, 100, 80, 40);
[btn setTitle:@"按钮" forState:UIControlStateNormal];
//第一个参数,谁来实现这个事件函数,实现的对象就是谁。
//函数对象,调用函数
//第三个参数是 按钮满足事件类型参数,满足这个事件 会执行参数2
[btn addTarget:self action:@selector(pressbtn) forControlEvents:UIControlEventTouchUpInside];
// 按了按钮,手指离开按钮时(outside,手指离开屏幕,手指不在按钮上)
//UIControlEventTouchDown :当手指触碰到屏幕上时
[self.view addSubview:btn];
}
- (void) pressBtn {
NSLog(@"按钮被按下");
}
如果函数带参数,只需在函数后加冒号,具体参数在函数实现里写。
[btn addTarget:self action:@selector(pressBtn:) forControlEvents:UIControlEventTouchUpInside];
- (void) pressBtn:(UIButton * ) btn {
NSLog(@"按钮被按下");
}
一个按钮可以添加多个事件函数
多个按钮可以使用同一个事件函数
带参数事件函数的调用
- (void)creatBtn {
UIButton * btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(100, 100, 80, 40);
[btn setTitle:@"按钮" forState:UIControlStateNormal];
//第一个参数,谁来实现这个事件函数,实现的对象就是谁。
//函数对象,调用函数
//第三个参数是 按钮满足事件类型参数,满足这个事件 会执行参数2
[btn addTarget:self action:@selector(pressbtn:) forControlEvents:UIControlEventTouchUpInside];
// 按了按钮,手指离开按钮时(outside,手指离开屏幕,手指不在按钮上)
//UIControlEventTouchDown :当手指触碰到屏幕上时
btn.tag = 101;// 按钮的身份标识
//创建第二个按钮
UIButton * btn02 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn02.frame = CGRectMake(100, 200, 80, 40);
[btn02 setTitle:@"?" forState:UIControlStateNormal];
[btn02 addTarget:self action:@selector(pressbtn:) forControlEvents:UIControlEventTouchUpInside];
btn02.tag = 102; // 按钮的身份标识
[self.view addSubview:btn];
[self.view addSubview:btn02];
}
- (void) pressbtn:(UIButton *) btn {
if (btn.tag == 101) {
NSLog(@"按钮1被按下");
}
if (btn.tag == 102) {
NSLog(@"按钮2被按下");
}
}