Сдвиг дисплея при добавлении строк в UITableView - PullRequest
2 голосов
/ 14 июня 2010

У меня есть UITableView, отображающий базовый NSFetchedResultsController.

Когда обновляется fetchedResultsController, вызывается

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath {

.И выполняется следующее:

  case NSFetchedResultsChangeInsert:
   [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:shiftedIndexPath] withRowAnimation:UITableViewRowAnimationFade];
   break;

cellForRowAtIndexPath вызывается только для новой строки (что логично)

Однако проблема заключается в том, что все значения отображаются в строках таблицы.вид смещен вниз.Первая строка отображает его заголовок.Во второй строке отображается заголовок первой строки.В третьей строке заголовок второй строки и т. Д. Если я повторю это, в третьей строке будет отображаться заголовок второй строки, в четвертой - заголовок третьей строки и т. Д.

Я не понимаю, что может произойти, особенно потому, что cellForRowAtIndexPathвызывается только для новой строки (что логично), а не для всех этих строк.Кроме того, если щелкнуть эти строки с неправильным заголовком, откроется нужный документ (didSelectRowAtIndexPath работает правильно с indexPath)

Любая подсказка, что может произойти?Спасибо!

Ответы [ 2 ]

0 голосов
/ 17 июня 2010

Скажу, если ваше изменение должно повлиять на все строки, доступные в TableView, вам определенно нужно вызвать [tableView reloadData]

0 голосов
/ 14 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...