创建按钮思想
Snip20160625_3.png每个按钮用自己单独的方法时argument选none当共用一个方法时argument选择sender 共用一个方法输出是调用send用来区别按钮
NSLog(@"click - %@",sender);
由于位置经常变动而tag是不经常变动的,所以我们一般用tag属性判断点击了那个按钮
设置tag属性点击按钮左边属性方法中将不同按钮的tag值改为不同则可以通过判断tag(我们自己设定的值)判断点击哪个按钮
- (IBAction)click:(UIButton *)sender {
if (sender.tag ==10) {
NSLog(@"点击添加按钮");
}else if(sender.tag ==20){
NSLog(@"点击删除按钮");
}
代码创建按钮
添加一个按钮
//控制器的view创建完成才能在里面加东西
- (void)viewDidLoad {
[super viewDidLoad];//苹果官方默认调用的,不用管
//1,创建一个加号按钮
//设置按钮为自定义类型
// UIButton *addBtn = [UIButton buttonWithType:UIButtonTypeCustom]等同于下面一行代码
UIButton *addBtn = [[UIButton alloc]init];
//设置背景颜色
[addBtn setBackgroundImage:[UIImage imageNamed:@"add"] forState:UIControlStateNormal];
[addBtn setBackgroundImage:[UIImage imageNamed:@"add_highlighted"] forState:UIControlStateHighlighted];
[addBtn setBackgroundImage:[UIImage imageNamed:@"add_disabled"] forState:UIControlStateDisabled];
//创建按钮坐标,如果按钮没有坐标则在屏幕上是没有显示的
addBtn.frame = CGRectMake(30, 30, 70, 60);
//设置tag值用于区分方法
addBtn.tag = 10;
//监听按钮
[addBtn addTarget:self action:@selector(add)
//调用方法添加按钮进去
[self.view addSubview:addBtn];
}
-(void)add
{
NSLog(@"添加-----");
}
多个按钮监听一个方法
-(void)click:(UIButton *)Btn
{
NSLog(@"点击了按钮 - %@",Btn);
}
将传入的方法名改为click:就可以了传入方法名是为了区分按钮
可以设置tag值用于区分不同按钮
addBtn.tag = 10;
方法里的内容改为
if (Btn.tag ==10) {
NSLog(@"点击添加按钮");
}else if(Btn.tag ==20){
NSLog(@"点击删除按钮");
}
(企业级开发不用tag)
可以将添加按钮封装成一个函数这样添加一个按钮调用一次这个函数就可以了
-(void) addButtenWithImage:(NSString *)image highImage:(NSString *)highImage disableImage:(NSString *)disableImage frame:(CGRect)frame tag:(NSInteger)tag action:(SEL)action
{
UIButton *btn = [[UIButton alloc]init];
[btn setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted];
[btn setBackgroundImage:[UIImage imageNamed:disableImage] forState:UIControlStateDisabled];
btn.frame = frame;
btn.tag = tag;
[btn addTarget:self action:action forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
}
调用这个函数的方法是下面的方法,只需要将变量传送过去就可以
[self addButtenWithImage:@"add" highImage:@"add_highlighted" disableImage:@"add_disabled" frame:CGRectMake(30, 30, 70, 60) tag:10 action:@selector(add)];
网友评论