Как удалить строку в UITableView вручную? - PullRequest
17 голосов
/ 27 мая 2009

Вот что я придумала:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:1]; // my table view has 2 sections
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];

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

Неверное обновление: недопустимое количество строк в разделе 0. Количество строк, содержащихся в существующем разделе после обновления, должно быть равно числу строк, содержащихся в этом разделе до обновления, плюс или минус количество добавленных строк или удалены из этого раздела.

Это немного сбивает с толку. Секция установлена ​​в 1, но исключение говорит, что это 0.

Ответы [ 2 ]

29 голосов
/ 27 мая 2009

Я понял это.

В дополнение к вышеупомянутому коду мне также необходимо внести изменения в источник данных

[items removeObjectAtIndex:0];
6 голосов
/ 09 января 2012
- (IBAction)deleteCustomCellWithUIButton:(id)sender
{
  NSLog(@"Message From Custom Cell Received");
  NSIndexPath *indexPath = [self.myTableView indexPathForCell:(UITableViewCell *)[[[sender superview] superview] superview]];
  NSUInteger row = [indexPath row];
  [self.myDataArray removeObjectAtIndex:row];
  [self.myTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]  withRowAnimation:UITableViewRowAnimationFade];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...