Метод 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
и справиться с этим самостоятельно.