Code Bye

怎么判断点击的是哪个按钮

 

放了3个按钮,分别为btn1,btn2,btn3
当点击其中的一个按钮时,怎么判断点击的按钮是3个中的哪个?

你首先要声明和定义三个点击事件,-(IBAction)cliekBtnOne{//事件处理},-(IBAction)cliekBtnTwo{//事件处理},-(IBAction)cliekBtnThree{//事件处理},然后再在IB中关联它们。按住Ctrl键,将对应的button拉到File””s own,选择你要的点击事件即可!
我只定义一个点击事件,-(IBAction)cliekBtn{//事件处理},在-(IBAction)cliekBtn中判断是哪个按钮,在执行事件,因为执行差不多的事件,不想写3个,不知道能不能实现。

也就是说多个UIButton映射到同一个事件函数,在事件中,如何区分是哪个按钮触发了事件?

30分
用tag属性
tag属性怎么用?

谢谢

在ButtonAttributes中将Tag设成1(用的是UIButton)
click事件函数中
-(IBAction)cliekBtn{
  UIButton* button = (UIButton*)sender;
  int btnTag = [button tag];
  …
}
btnTag永远都是0…哪里错了?
哈哈,搞出来了,是没有保存interface
不过多谢Linux_fay的回答
引用 4 楼 andypzh 的回复:

tag属性怎么用?

谢谢

首先要在*ViewController.h文件中,声明IBOutlet UIButton *btn; @property(retain, nonatomic) UIButton *btn;  声明一个函数-(IBAction)cliekBtn;
然后在*ViewController.xib中,把三个button都关联到btn,并都关联clickBtn事件,再然后就是在button Attributes 中对三个button控件设置tag,在button Attrubutes的下半部分能找到,tag属性。对于的第一个button将tag设为1,第二个设置为2,第三个设置为3.

最后在*ViewController.m中@synthesize btn;  
再实现
-(IBAction)cliekBtn{
  if(btn.tag == 1){ 
     //do something 
  }
  else if(btn.tag == 2){
     //do something
  }else{
      //do something
  }

}

楼上的错了,我也没去试,原来是不能同事关联到一个IBOutlet的。
首先要在*ViewController.h文件中,声明一个函数-(IBAction)cliekBtn;
然后在*ViewController.xib中,把三个button都关联到clickedBtn事件,并在button Attrubutes的后半部分设置tag值。对第一个button将tag设为1,第二个设置为2,第三个设置为3.

最后在*ViewController.m中实现点击事件
-(IBAction)cliekBtn{
  UIButton* btn = (UIButton*)sender;
  int btnTag = [btn tag];
  if(btn.tag == 1){  
  //do something  
  }
  else if(btn.tag == 2){
  //do something
  }else{
  //do something
  }

}

引用 8 楼 linux_fay 的回复:

楼上的错了,我也没去试,原来是不能同事关联到一个IBOutlet的。
首先要在*ViewController.h文件中,声明一个函数-(IBAction)cliekBtn;
然后在*ViewController.xib中,把三个button都关联到clickedBtn事件,并在button Attrubutes的后半部分设置tag值。对第一个button将tag设为1,第二个设置为2,第三个设……

//int btnTag = [btn tag];  没有的,注释掉
不知道楼主是怎么实现的? 

声明一个函数-(IBAction)cliekBtn,把三个button都关联到cliekBtn事件,并在button Attrubutes的后半部分设置tag值。对第一个button将tag设为1,第二个设置为2,第三个设置为3

在clickedBtn事件中,先将sender转成UIButton的对象
UIButton* button = (UIButton*)sender;

在取当前button的tag值
    int btnTag = [button tag];
不是int btnTag = [btn tag];


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么判断点击的是哪个按钮