如何在iOS中的UItableCell内的按钮上添加点击手势?

时间:2015-10-13 13:54:26

标签: ios objective-c iphone uitableview

我已经制作了一个自定义单元格。在每个自定义单元格中有许多按钮,例如3到4我想为该单元格内的每个按钮添加点击手势。因此,我可以唯一地识别单击了哪个单元格的按钮。我搜索了很多,但没有找到任何好的解决方案。

请告诉我。

3 个答案:

答案 0 :(得分:2)

您想要访问可以直接访问的button,而不需要手势

喜欢

[yourButton1 addTarget:self action:@selector(selectButtonPressed1:) forControlEvents:UIControlEventTouchUpInside];
yourButton1.tag=indexPath.row;

 [yourButton2 addTarget:self action:@selector(selectButtonPressed2:) forControlEvents:UIControlEventTouchUpInside];
yourButton2.tag=indexPath.row;

 [yourButton3 addTarget:self action:@selector(selectButtonPressed3:) forControlEvents:UIControlEventTouchUpInside];
yourButton3.tag=indexPath.row;


 [yourButton4 addTarget:self action:@selector(selectButtonPressed4:) forControlEvents:UIControlEventTouchUpInside];
yourButton4.tag=indexPath.row;

方法 - 1

-(void)selectButtonPressed1:(UIButton*)sender
{
NSLog(@"selcted button1");
}

方法 - 2

-(void)selectButtonPressed2:(UIButton*)sender
{
NSLog(@"selcted button2");
}

方法 - 3

-(void)selectButtonPressed3:(UIButton*)sender
{
NSLog(@"selcted button3");
}

方法 - 4

-(void)selectButtonPressed4:(UIButton*)sender
{
NSLog(@"selcted button4");
}

答案 1 :(得分:0)

假设你有n个按钮。你有一个butotn动作方法:

您需要将此方法连接到所有n个按钮(内部触摸),这样每当您按下按钮时,此方法都会受到影响。

您可以为按钮指定标记值,也可以按标题

识别它们
-(IBAction) nButtonActions:(id)sender{

         if([[sender titleLabel] isEqualtoString:@"your button-1 title"]){
                 //call your method for button -1
           }

     //or you can do the same using sender.tag


    }

答案 2 :(得分:0)

使用恢复标识符。

button.restorationIdentifier = @"Cell Number _ button tag";

例如

button.restorationIdentifier = [NSString stringWithFormat:@"%@", indexPath.row];

NSString* rowIndexStr = ((UIButton*)sender).restorationIdentifier;