Вставьте строку UITableView без ЛЮБОЙ анимации
[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:row inSection:0]]
withRowAnimation:UITableViewRowAnimationNone];
При выполнении каждой строки после того, как я вставляю слайды. Я хочу, чтобы они немедленно прыгнули на новое место. Я не хочу называть reloadData
, так как все мои ячейки будут перерисовываться.
Можно ли удалить эту анимацию?
Ответы
Ответ 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]
вместо ручной установки строки, таблица обновится без какой-либо анимации.