0

在表格单元格上滑动一次并从右侧进入删除按钮时,是否有任何委托方法被调用?

我想跟踪滑动并在那里做一些动作。

此外,当您点击单元格中的“删除”按钮时,会调用哪个委托方法。

替代文字

4

1 回答 1

6

UITableViewDelegate方法tableView:editingStyleForRowAtIndexPath:将在一行进入“编辑”模式之前被调用。当您滑动单元格以及表格视图接收到setEditing:animated消息时会调用此方法。如果您有一个将表格视图置于编辑模式的编辑按钮,您需要注意将为每个可见单元格调用该按钮。

因此,您可以执行以下操作:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView 
           editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (tableView.editing) {
        return UITableViewCellEditingStyleDelete;
    }
    else {
        // do your thing
        return UITableViewCellEditingStyleDelete;
    }
}

当您点击删除按钮tableView:commitEditingStyle:forRowAtIndexPath:时,会被调用。

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // repsond to delete
    }     
}

如果您想更改删除按钮的文本,您可以使用tableView:titleForDeleteConfirmationButtonForRowAtIndexPath:

如果另一方面您不想显示“删除”按钮,而是做其他事情,您应该自己研究UISwipeGestureRecognizer并处理它。

于 2010-12-16T11:28:32.540 回答