не удается увидеть кнопку Удалить при переключении UITableViewCell - PullRequest
0 голосов
/ 23 июня 2011

Я пытаюсь удалить UITableViewCell из UITableView.

Реализовано UITableViewDelegate, UITableViewDataSource до моего UIViewController.

Также реализуйте все методы, которые необходимо определить для вышеуказанных делегатов, например:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath;
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath;

Установите UITableView в режим редактирования,

  [tableView setEditing:YES animated:YES];

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

Я просматриваю все сообщения из stackoverflow , но не могу найти решение.

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 26 июня 2011

Мне кажется, вам не хватает метода tableView: editStyleForRowAtIndexPath .Попробуйте добавить код ниже к вашей реализации.

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewCellEditingStyleDelete;
}
0 голосов
/ 30 января 2018

Этот метод используется для отображения кнопки удаления при проведении выбранной TableViewCell.

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView 
       editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
}

Этот метод будет выполнять действие при нажатии кнопки удаления во время прокрутки TableViewCell

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

Этот метод обновит представление таблицы после удаления строки из представления таблицы

- (void)tableView:(UITableView *)tableView 
                   didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath {
}
0 голосов
/ 28 июня 2016

удалите

[tableView setEditing:YES animated:YES];

и просто используйте этот метод

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return YES if you want the specified item to be editable.
    return YES;
}

и выполните действие с кнопкой удаления - (void) tableView: (UITableView *) tableView commitEditingStyle:

(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
 //add action on delete button
}
0 голосов
/ 23 июня 2011

вот что я использую для достижения этой цели:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
    [myArray removeObjectAtIndex:indexPath.row];
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...