UITableView, перехват режима редактирования

13
задан Coocoo4Cocoa 12 December 2008 в 02:41
поделиться

4 ответа

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

3
ответ дан Lily Ballard 12 December 2008 в 02:41
поделиться
  • 1
    arghh, просто заметил, что ripper234 отправил URL скрипки в на eof комментарии несколько месяцев назад, который весьма схож. Так или иначе я сохраняю свой ответ здесь... – mar10 26 January 2013 в 18:49

Я реализовал бы подкласс UITableViewCell и сенсорных событий дескриптора там. Необходимо было бы, вероятно, сделать весь материал анимации сами, но я думаю, что это - вероятно, самое легкое решение. Нет "Поддерживаемого" метода для изменения удалить кнопки, я не думаю

0
ответ дан Ed Marty 12 December 2008 в 02:41
поделиться
  • 1
    Этот также перестанет работать (как большинство вариантов вокруг) в этих случаях: versionCompare (' 1.09' ' 1.1') возвращает " 1" тот же путь как versionCompare (' 1.702' ' 1.8'). – shaman.sir 5 September 2013 в 00:33

Редактирование реализовано как метод для объекта делегата вашего 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];
21
ответ дан 1 December 2019 в 20:31
поделиться

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

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
6
ответ дан 1 December 2019 в 20:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: