Режим редактирования Удалить значок Spinner для определенных строк TableView - PullRequest
1 голос
/ 13 мая 2010

У меня есть сгруппированный просмотр таблицы. Каждый раздел имеет три ряда. Мне нужно иметь возможность удалять один раздел за раз. Используя стандартный режим редактирования, я могу заставить его работать. Однако значок удаления отображается слева от каждой ячейки, а не только в первой строке каждого раздела.

Есть ли способ подавить маленькую иконку счетчика для всех строк, кроме первой?

Я надеюсь, что есть простой способ сделать это без подклассов.

Вот скриншот, чтобы помочь визуализировать его: http://picasaweb.google.com/lh/photo/ll-EJY5ACw7oqHH1xKBQ8w?feat=directlink

Ответы [ 2 ]

1 голос
/ 13 мая 2010

Попробуйте это:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    if(indexPath.row == 0) {
        return UITableViewCellEditingStyleDelete;
    } else {
        return UITableViewCellEditingStyleNone;
    }
}
0 голосов
/ 13 мая 2010

Вместо удаления строк создайте родительский UIView, который содержит UILabel и пользовательский UIButton в качестве подпредставлений. Установите это родительское представление как представление заголовка раздела .

Кнопка должна быть подключена, чтобы вызвать метод, который удаляет строки, например, щелкнув флаг состояния BOOL для этого раздела и затем перезагрузив таблицу:

- (void) deleteMySection:(id)sender {
    self.showMySection = NO;
    [tableView reloadData];
}

Ваш метод делегата -numberOfSectionsInTableView: соответственно настроит свой вывод в зависимости от состояния этого логического флага, например,

- (NSInteger) numberOfSectionsInTableView:(UITableView *)tv {
    return ((showMySection) ? numberOfSections : numberOfSections - 1);
}
...