У меня есть UITableView, который я загружаю через JSON. Итак, моя логика выглядит так:
- Получить JSON (NSOperation, обратный вызов в главный поток)
- В обратном вызове проанализируйте json и вставьте новые данные в массив источника данных моей таблицы.
- Вызовите reloadData для TableView, чтобы показать новые данные.
У меня такой вопрос: как я могу анимировать появление новых строк в таблице? Прямо сейчас я просто заставляю их всех сразу появиться, и я хочу сделать их живыми, потому что это выглядит намного круче.
Я думаю, что я хочу использовать:
[self.theTableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationRight];
Но это вызывает у меня жалобы во время выполнения программы о том, что размер обновления отличается от размера в источнике данных.
Я что-то упускаю из-за того, как следует использовать этот метод? Кто-нибудь знает пример, где кто-то анимирует новые строки в TableView с помощью этого шаблона?
Обновление: в основном, я решил это благодаря руководству Бена, используя следующий подход:
- Начните с [self.theTableView beginUpdates];
- Когда я зацикливаю свои записи в JSON, вставляю их в начало моего массива, увеличивая их индекс каждый раз через цикл.
Каждый раз через цикл вызывайте insertRowsAtIndexPath, например:
NSIndexPath * indexPath;
indexPath = [NSIndexPath indexPathForRow: [self.theChatEntries indexOfObject: message] inSection: 0];
[self.theTableView insertRowsAtIndexPaths: [NSArray arrayWithObject: indexPath] withRowAnimation: NO];
Конец endUpdates вне цикла.
Woot.