Как отключить операцию удаления для определенной строки в UITableView? - PullRequest
15 голосов
/ 07 июня 2010

Я знаю об использовании setEditing: для включения режима редактирования UITableView.

Но я предпочитаю отключить операцию для некоторых определенных строк (включить другие строки).

Возможно ли это?

Спасибо,

interdev

Ответы [ 4 ]

30 голосов
/ 07 июня 2010

Реализуйте метод -tableView:canEditRowAtIndexPath: в вашем источнике данных. Вернуть NO для этих строк.

10 голосов
/ 29 мая 2013

этот пост прекрасно подытожил, Есть ли способ скрыть кнопку "-" (Удалить) при редактировании UITableView

в случае, если вы не хотите читать пост, суть которого находится в строке, которую вы не хотите удалять, но хотите разрешить перемещение строки: установите стиль редактирования для строки в UITableViewCellEditingStyleNone

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
    return UITableViewCellEditingStyleNone; 
}
9 голосов
/ 04 августа 2011

Использование canEditRowAtIndexPath не позволит строке выровняться с другими ячейками в сгруппированном стиле. который может выглядеть плохо.

Я использую UITableViewCellEditingStyleNone, для строк, которые вы не хотите показывать элемент управления редактирования (кнопка минус / плюс), введите это в ваш

(UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{}
1 голос
/ 25 сентября 2015

Исходя из вашего вопроса, я понимаю, что вы хотите просто скрыть кнопку удаления от появления в 1-й строке. Пожалуйста, установите для редактирования таблицы вид Да и добавьте следующий код

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {

    if(indexPath.row==0)
    {
        return NO;
    }
    return YES;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...