ios按下编辑操作时获取表格视图单元格索引

时间:2015-07-31 06:49:11

标签: ios objective-c uitableview cell

我有一个包含编辑操作的单元格的表格视图。当用户向左滑动其中一个单元格时,您可以看到编辑操作按钮。

enter image description here

当用户点击其中一个按钮时,我需要获取单击按钮的单元格的索引路径。我怎么能这样做?

注意,编辑操作按钮不是UIButtons,它们是这样的。

-(NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
     UITableViewRowAction *button = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Reply" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)
                                    {

 nil;

                                    }];

    button.backgroundColor = [UIColor colorWithRed:0.1 green:0.4 blue:0.9 

    alpha:1.0]; //arbitrary color
    }

3 个答案:

答案 0 :(得分:0)

您需要覆盖委托方法,当您为编辑/删除选项滑动行时会获得该方法。

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {

        NSLog(@"canEditRowAtIndexPath get called");
        NSLog(@"Index is %ld",indexPath.row);
        return YES;
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        //delete object here
        NSLog(@"Index is %ld",indexPath.row);
        [tableView reloadData]; // tell table to refresh now
   }
}

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{

    NSLog(@"accessoryButtonTappedForRowWithIndexPath method get called");
    NSLog(@"Index is %ld",indexPath.row);
}

答案 1 :(得分:0)

首先设置

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{......
editbutton.tag=index.row
   [editbutton addTarget:self action:@selector(clickOn:) forControlEvents:UIControlEventTouchUpInside];

....
}

比 在

-(IBAction)clickOn:(id)sender
{
    UIButton *btn=(UIButton *)sender;
    nslog(@"%d",btn.tag);


}

答案 2 :(得分:-1)

试试这个

UITableViewCell

中写下此内容
NSIndexPath *indexPath = [(UITableView *)self.superview indexPathForCell: self];

希望它有所帮助。