Я добавляю строку в раздел UITableView, когда пользователь переключает таблицу в режим редактирования с помощью этого кода:
- (void) setEditing:(BOOL) editing animated:(BOOL) animated {
[super setEditing:editing animated:animated];
if (editing) {
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject: [NSIndexPath indexPathForRow:0 inSection:SECTION_SUPPLIERS]] withRowAnimation:UITableViewRowAnimationFade];
}
}
Объект для создания строки "Добавить нового поставщика ...". Это работает, однако, когда таблица хочет получить стиль редактирования, чтобы она могла добавить значок плюс или минус, у меня проблема.
- (UITableViewCellEditingStyle) tableView:(UITableView *) tableView editingStyleForRowAtIndexPath:(NSIndexPath *) indexPath {
return ([self.tableView isEditing] && indexPath.row == 0) ? UITableViewCellEditingStyleInsert : UITableViewCellEditingStyleDelete;
}
Последовательность выглядит следующим образом:
- Таблица переключается на редактирование. В настоящее время есть только одна строка поставщика, поэтому он запрашивает стиль редактирования со строкой == 0.
- Вставка новой строки завершена, после чего снова запускается другой запрос для стиля редактирования со строкой == 0.
Поэтому, если я использую эту последовательность и использую номер строки и tableView isEditing, чтобы выбрать значок стиля редактирования, я получу как строки «Добавить новый», так и текущий поставщик с иконками «плюс».
Каков наилучший способ вставить строку и назначить соответствующий стиль редактирования - плюс для добавления новой строки и минус для любой другой строки?