如何编写放置在tableview的每个单元格中的UIButton的动作?

时间:2013-12-11 11:40:47

标签: ios iphone uitableview uibutton

我有一个自定义的tableview单元格,我有一个UIButton。 我想为tableview单元格中的每个按钮编写动作。告诉我该怎么做。 我已经尝试使用标签,但它不能作为 cellForRowAtIndexPath 一次加载所有单元格,因此它会覆盖标签号。 请告诉我怎么做。 以下代码我正在使用

if(indexPath.row == 0){[cell.viewButton addTarget:self action:@selector(playMovie) forControlEvents:UIControlEventTouchUpInside];
       cell.viewButton.tag = 1;
    }
    else {
        [cell.viewButton addTarget:self action:@selector(playMovie) forControlEvents:UIControlEventTouchUpInside];
        cell.viewButton.tag = 2;
    }
return cell;

enter image description here

3 个答案:

答案 0 :(得分:1)

也使用@selector

传递按钮的实例
[cell.viewButton addTarget:self action:@selector(playMovie:) forControlEvents:UIControlEventTouchUpInside]
cell.viewButton.tag = indexpath.row;

然后实现像这样的按钮点击方法

-(void)playMovie:(UIButton *)sender{

  if(sender.tag == 0){
  NSLog(@"button at first cell");

  }else if (sender.tag  == 1){
  NSLog(@"button at first cell");
  }
  // SO on.......
}

答案 1 :(得分:1)

您可以为按钮添加按钮标签,然后您可以在其方法中识别该按钮。

cell.btn.tag = indexPath.row+1;

你可以在点击事件中获得

-(void)btnOnClick:(id)sender
{
UIButton *btnTag = (UIButton *)sender.tag;
if(btn.tag == 1)
{
}
}

答案 2 :(得分:0)

No need to add target for every rows,做这样的事情:

if(indexPath.row == 0){
       cell.viewButton.tag = 100;
    }
    else {
        cell.viewButton.tag = 101;
    }
[cell.viewButton addTarget:self action:@selector(playMovie:) forControlEvents:UIControlEventTouchUpInside];
return cell;


-(IBAction)playMovie:(id)sender{
if(sender.tag == 100){
// Do your Stuff..
}else if(....).....

}