UITableView, перехват режима редактирования - PullRequest
13 голосов
/ 11 декабря 2008

Мне любопытно, можно ли перехватить стандартные методы режима «Редактировать» в UITableView. Как правило, вы получаете бесплатную кнопку «удалить», если вы проводите по сторонам UITableViewCell, с которым связаны методы делегата. Я хотел бы изменить удаление на другой произвольный селектор. Вместо того, чтобы удалять ячейку, я просто хотел бы запустить диалог оповещения о мире приветствия. Возможно ли что-то в такой степени?

Ответы [ 4 ]

21 голосов
/ 09 августа 2009

Редактирование реализовано как метод в объекте делегата вашего UITableView. В контроллере вашей таблицы, какой бы элемент управления ни активировал редактирование, вызовите это:

[tableView setEditing: YES animated: YES];

Затем убедитесь, что ваш объект делегата реализует это:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
            UIAlertView *alert = [[UIAlertView alloc] 
                initWithTitle: @"Delete" 
                message: @"Do you really want to delete “George W. Bush”?" 
                delegate: self
                cancelButtonTitle: @"Cancel"
                otherButtonTitles: @"Of course!", nil];
    }
}

… или более стандартное действие может быть:

[itemList removeObjectAtIndex:indexPath.row];
[table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
6 голосов
/ 03 января 2010

@ JFMartin и Marco - для замены стандартной кнопки «Удалить» используйте следующий метод делегата UITableview

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
3 голосов
/ 13 декабря 2008

В UITableViewCell есть свойство, называемое editAction, которое задокументировано как позволяющее изменить действие, используемое для вставки или удаления в отдельных ячейках (оно также использует свойство ячейки target). Я не проверял это, но похоже, что он может делать то, что вы хотите.

0 голосов
/ 15 декабря 2008

Я бы реализовал подкласс UITableViewCell и обрабатывал там сенсорные события. Скорее всего, вам придется делать все анимационные вещи самостоятельно, но я думаю, что это, вероятно, самое простое решение. Не существует «поддерживаемого» метода для изменения кнопки удаления, я не думаю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...