Я не совсем уверен, что здесь происходит, но я столкнулся с контактной формой, с которой я работаю. В моей форме я добавил возможность добавления адреса электронной почты контакту. Как показано на рисунке ниже, как только пользователь нажимает «добавить адрес электронной почты», строка добавляется в раздел «Электронные письма».UITableView deleteRowsAtIndexPaths не работает
Однако после того, как я нажимаю удалить электронную почту, дополнительные ячейки появляются под кнопку Добавить адрес электронной почты (на фото ниже).
Там немного красная коробка от того, что, как представляется, до удаления клеток, как если бы таблица не перезагружается. Вот мой код удаления:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if(editingStyle == UITableViewCellEditingStyleDelete)
{
// Update the data source
NSMutableArray *fields = (NSMutableArray *)self.fields[@(indexPath.section)];
[fields removeObjectAtIndex:indexPath.row];
NSMutableArray *values = (NSMutableArray *)self.values[@([self fieldTypeAtIndexPath:indexPath])];
[values removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationMiddle];
}
}
Так почему же эта ячейка остается после? Я могу вызвать [tableView reloadData]
в методе выше, и он удаляет лишнюю ячейку, но затем она помещает анимацию. Можете ли вы пролить ясность на то, что я делаю неправильно здесь?
Он возвращает правильное число. И я считаю, что вы имеете в виду 'numberOfRowsInSection' ... –
@NickONeill: Вы пробовали другой тип анимации? таких как автоматический? – Senseful
На самом деле дайте мне 1 секунду. Возможно, вы правы. –