Добавить/Удалить UITableViewCell с анимацией?
Я знаю, это может показаться глупым вопросом, но я посмотрел куда угодно. Как я могу это сделать?
Я знаю, как это сделать с помощью метода swype-to-delete, но как cam я делаю это вне этой функции?
Пожалуйста, разместите несколько образцов кода.
Спасибо!
Коултон
Ответы
Ответ 1
[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationFade];
[self.tableView deleteRowsAtIndexPaths:deleteIndexPaths withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];
insertIndexPaths
- это массив NSIndexPaths, который будет вставлен в вашу таблицу.
deleteIndexPaths
- это массив NSIndexPaths, который нужно удалить из вашей таблицы.
Пример формата массива для индексных путей:
NSArray *insertIndexPaths = [[NSArray alloc] initWithObjects:
[NSIndexPath indexPathForRow:0 inSection:0],
[NSIndexPath indexPathForRow:1 inSection:0],
[NSIndexPath indexPathForRow:2 inSection:0],
nil];
Ответ 2
В Swift 2.1 +
tableView.beginUpdates()
tableView.deleteRowsAtIndexPaths([YourIndexPathYouWantToDeleteFrom], withRowAnimation: .Fade)
tableView.insertRowsAtIndexPaths([YourIndexPathYouWantToInsertTo], withRowAnimation: .Fade)
tableView.endUpdates()
И вы можете легко создать NSIndexPath:
NSIndexPath(forRow: 0, inSection: 0)
Ответ 3
Вам нужны эти два метода: insertRowsAtIndexPaths:withRowAnimation:
и deleteSections:withRowAnimation:
Они оба подробно описаны в документации UITableView.