Я пытаюсь использовать дополнительную строку в нижней части моего UITableView, которая будет использоваться для вставки записи. Это работает нормально, но у меня возникают проблемы с его анимацией. Либо дополнительная строка отображается правильно, и я не получаю анимацию (используя [self.tableView reloadData] в методе setEditing:. Или я получаю анимацию и не получаю лишнюю строку, не используя reloadData. Я знаю, что, вероятно, я не показываю правильная дополнительная строка (возвращая еще одну строку в моем методе numberOfRowsInSection и используя reloadData для принудительного обновления.).
Я знаю, что должен быть правильный способ сделать это, но я не видел примеров.
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[self.tableView setEditing:editing animated:animated];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section];
if (self.editing == YES) {
return [sectionInfo numberOfObjects] + 1;
}
return [sectionInfo numberOfObjects];
}
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row + 1 > [fetchedResultsController.fetchedObjects count]) {
cell.textLabel.text = @"Add New Row...";
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
} else {
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
MyManagedObject *aManagedObject = [fetchedResultsController.fetchedObjects objectAtIndex:indexPath.row];
cell.textLabel.text = aManagedObject.planName;
}
}