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