我有一个包含编辑操作的单元格的表格视图。当用户向左滑动其中一个单元格时,您可以看到编辑操作按钮。
当用户点击其中一个按钮时,我需要获取单击按钮的单元格的索引路径。我怎么能这样做?
注意,编辑操作按钮不是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
}
答案 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];
希望它有所帮助。