我有一个自定义的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;
答案 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(....).....
}