Цель c - Есть ли способ заполнить табличное представление некоторой анимацией?

У меня есть контроллер представления с табличным представлением и NSArray, которые представляют мою модель. В viewDidLoad я заполняю массив объектами, а затем вызываю [tableView reloadData], чтобы заполнить представление таблицы. В результате представление таблицы заполняется одним фрагментом, и мне это не нравится.
Я хочу, чтобы оно скользило вниз, как будто я добавлял одну ячейку за другой.
Возможно ли это?

Если я попытаюсь сделать что-то вроде этого:

    [self.tableView beginUpdates];

    for (int i=0; i < sortedPersons.count; i++) {
        Person *personInfo = [sortedPersons objectAtIndex:i];
        [self.myMainModelArr addObject:personInfo];

        NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:i inSection:0];
        [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
    }

    [self.tableView endUpdates];

Я получаю сообщение об ошибке обновления недопустимого представления таблицы


person Eyal    schedule 24.04.2012    source источник


Ответы (1)


При использовании UITableView вы можете использовать несколько функций-делегатов, которые должны помочь в этом. Когда вы собираетесь добавить что-то в tableView, обязательно используйте:

[tableView beginUpdates];

Затем при вставке вы можете использовать метод делегата:

- (void)insertSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation

а затем, когда закончите добавление, обязательно используйте:

[tableView endUpdates];

Все эти функции доступны для просмотра из UITableView Справочник по классу

Здесь есть небольшой фрагмент кода: UITableView добавить анимацию ячейки

person Alex Muller    schedule 25.04.2012
comment
Если это вам помогло, выберите его в качестве ответа. - person Alex Muller; 25.04.2012
comment
Дело в том, что я хочу сделать это до того, как какие-либо строки появятся в табличном представлении, но проблема в том, что табличное представление еще не знает, сколько разделов или сколько строк в разделе, потому что эти методы делегата еще не вызывались , потому что я не делал reloadData ... - person Eyal; 25.04.2012