Вставьте строку UITableView без ЛЮБОЙ анимации - программирование

Вставьте строку UITableView без ЛЮБОЙ анимации

[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:row inSection:0]] 
                      withRowAnimation:UITableViewRowAnimationNone];

При выполнении каждой строки после того, как я вставляю слайды. Я хочу, чтобы они немедленно прыгнули на новое место. Я не хочу называть reloadData, так как все мои ячейки будут перерисовываться.

Можно ли удалить эту анимацию?

4b9b3361

Ответ 1

Это работает для меня:

[UIView setAnimationsEnabled:NO];
[self.tableView beginUpdates];

[self.tableView insertRowsAtIndexPaths:indexPath
                      withRowAnimation:UITableViewRowAnimationNone];

[self.tableView endUpdates];
[UIView setAnimationsEnabled:YES];

Надеюсь, что это поможет.

Ответ 2

Это также работает

[UIView performWithoutAnimation:^{
    [self.tableView insertRowsAtIndexPaths:indexPaths:withRowAnimation:UITableViewRowAnimationNone];
});

Ответ 3

К сожалению, я столкнулся с этой же проблемой, и мне не удавалось удалить анимацию.

Должна быть ошибка с типом анимации UITableViewRowAnimationNone, поскольку iOS (любой версии), похоже, не уважает его.

Ответ 4

Если вы обновите источник данных UITableView и вызовите [tableView reloadData] вместо ручной установки строки, таблица обновится без какой-либо анимации.