0

我有一个 uitableview,每行有 2 个 uibutton(button1 和 button2)。现在我知道 indexPath.row (例如:indexPath.row =2)。当我有 uitableview 的 IndexPath.row 时,如何获得 button1?请给我任何建议来解决这个问题。提前致谢。

我使用了这段代码:

-(void)UpdateBtn:(NSNotification *)notification {

    //Update your button image code here
    shotIDPass =[[NSUserDefaults standardUserDefaults]valueForKey :@"videoIDstring"];
    NSLog(@"%@",shotIDPass);
    for (int i =0; i < [shotIDArray count]; i++) {
        if([[shotIDArray objectAtIndex:i] isEqualToString:shotIDPass])
        {
             NSLog(@"IndexPath of row %@",i); // get indexPath.row at here
        }
    }
}
4

3 回答 3

0

只需简单地将 IBOutlet 设为您的按钮,并在方法中您只需分配执行选择器,如下所示

   -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

 [cell.button1 addTarget:self action:@selector(button1:) forControlEvents:UIControlEventTouchUPInside];
   [cell.button2 addTarget:self action:@selector(button2:) forControlEvents:UIControlEventTouchUPInside];


  return cell;
  }

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

-(IBAction)button1 :(UIButton *)btn

   { 
     //Your Implementation

     }

和第二个按钮一样

于 2013-08-21T10:56:42.410 回答
0

您需要创建一个自定义单元类。然后使用 tableview 委托方法。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    MyCustomCell *cell = (MyCustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (nil == cell) {
        cell = [[MyCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
return cell;
}

完成后,您在按钮上添加操作。

您可以在 xib 或情节提要中执行此操作以与 IBOutlet 链接或在 MyCustomCell.m 中以编程方式

于 2013-08-21T09:30:14.070 回答
0

您必须设置每个按钮标签

在这里,我解释了如何设置按钮标签并找到单击哪个按钮的 index.row

  • 首先,您需要创建一个自定义单元格类,并且您需要定义两个按钮..
  • 比您需要创建一个 NSMutableArray 以及需要在 tableview 中添加多少行之后所有单元格都添加到数组中

 

-(IBAction)clickEvent:(UIButton *)sender; -(void)viewDidload{ NSMutableArray *arrayCellCollection = [[NSMutableArray alloc] init]; int tagCount=1; for (int i =0; i < [shotIDArray count]; i++){ AddPropertyCell *cell = [[AddPropertyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellIdentifiour"]; cell.button1.tag=tagCount; [cell.button1 addTarget:self action:@selector(clickEvent:)forControlEvents:UIControlEventTouchUpInside]; tagCount++; cell.button2.tag=tagCount; [cell.button2 addTarget:self action:@selector(clickEvent:)forControlEvents:UIControlEventTouchUpInside]; tagCount++; [arrayCellCollection addObject:cell]; }} -(IBAction)clickEvent:(UIButton *)sender {int getIndexRow =0; int a = sender.tag %2; if (a==0) { getIndexRow=((a/2)-1); } else { getIndexRow=(a/2); } } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath { return [arrayCellCollection objectAtIndex:indexPath.row]; }
于 2013-08-21T11:59:32.460 回答