Метод делегата при ударе по ячейке - PullRequest
0 голосов
/ 16 декабря 2010

Существует ли какой-либо метод делегата, называемый моментом, когда один раз проведет пальцем по ячейке таблицы и кнопка удаления появится справа?

Я хотел отследить свайп и сделать там какое-то действие.

Кроме того, какой метод делегата вызывается при нажатии на кнопку «Удалить» в ячейке.

alt text

1 Ответ

6 голосов
/ 16 декабря 2010

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

...