Программно перемещать строки с анимацией в UITableView - PullRequest
17 голосов
/ 22 февраля 2010

Я хочу переместить строку в конец моего UITableView с классным анимационным эффектом, как в этом приложении Grocery Shopping List .

Так же, как мы можем перемещать строки с управлением переупорядочением, как:

reordering uitableview rows programmatically

Как я могу создать такую ​​анимацию?

Ответы [ 3 ]

26 голосов
/ 18 января 2012

В IOS 5 это можно сделать с помощью следующего селектора UITableView:

- (void)moveRowAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath

Например:

[self.tableView moveRowAtIndexPath:indexPath toIndexPath:[NSIndexPath indexPathForRow:[items count] - 1 inSection:1]];
8 голосов
/ 22 февраля 2010

Внимание! Этот ответ предполагает использование iPhone OS 3.x. См. Ответ выше для iOS 5.x

Я не знаю, что такое "крутой эффект анимации, как в приложении Grocery Shopping List". Не у всех есть это приложение.


Строки не могут быть перемещены программно.

Однако вы можете одновременно вставлять и удалять строки для имитации перемещения.

[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:rowToMove]
                 withRowAnimation:UITableViewRowAnimationLeft];
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPathToMoveTo]
                 withRowAnimation:UITableViewRowAnimationLeft];
// update your dataSource as well.
[tableView endUpdates];
2 голосов
/ 23 декабря 2011

Это похоже на то, что я сделал, чтобы разрешить перетаскивание из одного вида прокрутки в другое.

Вы захотите создать дублирующую / фиктивную ячейку (для визуального эффекта), затем удалите оригинальную ячейку, затем анимируйте дубликат, затем вставьте в нижнюю часть и, наконец, удалите дублирующую / фиктивную ячейку.

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