Добавить / удалить UITableViewCell с анимацией? - PullRequest
55 голосов
/ 06 апреля 2011

Я знаю, что это может звучать как глупый вопрос, но я смотрел везде. Как я могу это сделать?

Я знаю, как сделать это с помощью метода swype-to-delete, но как cam я могу сделать это вне этой функции?

Пожалуйста, опубликуйте несколько примеров кода.

Спасибо!
Коултон

Ответы [ 4 ]

118 голосов
/ 06 апреля 2011
[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationFade];
[self.tableView deleteRowsAtIndexPaths:deleteIndexPaths withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];

insertIndexPaths - это массив NSIndexPaths для вставки в вашу таблицу.

deleteIndexPaths - это массив NSIndexPath, которые будут удалены из вашей таблицы.

Пример формата массива для путей индекса:

NSArray *insertIndexPaths = [[NSArray alloc] initWithObjects:
        [NSIndexPath indexPathForRow:0 inSection:0],
        [NSIndexPath indexPathForRow:1 inSection:0],
        [NSIndexPath indexPathForRow:2 inSection:0],
        nil];
7 голосов
/ 21 января 2016

В Swift 2.1 +

tableView.beginUpdates()
tableView.deleteRowsAtIndexPaths([YourIndexPathYouWantToDeleteFrom], withRowAnimation: .Fade)
tableView.insertRowsAtIndexPaths([YourIndexPathYouWantToInsertTo], withRowAnimation: .Fade)
tableView.endUpdates()

И вы можете легко создать NSIndexPath, например:

NSIndexPath(forRow: 0, inSection: 0)
4 голосов
/ 06 апреля 2011

Вам нужны эти два метода: insertRowsAtIndexPaths:withRowAnimation: и deleteSections:withRowAnimation: Оба они подробно описаны в документации UITableView .

1 голос
/ 09 июня 2018

Swift 4.0

    tableView.beginUpdates()
    tableView.deleteRows(at: [YourIndexPathYouWantToDeleteFrom], with: .fade)
    tableView.insertRows(at: [YourIndexPathYouWantToInsertTo], with: .fade)
    tableView.endUpdates()

Для создания IndexPath используйте это:

IndexPath(row: 0, section: 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...