Как обновить UITableViewCell во время повторного заказа - PullRequest
4 голосов
/ 18 марта 2012

При перетаскивании UITableViewCell вызывается метод делегата - (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath.В этом методе делегата я могу установить свойства для выбранной ячейки в зависимости от ее proposedDestinationIndexPath.

. Теперь у меня вопрос, как обновить содержимое ячейки во время ее перемещения.Я могу обновить ячейку после освобождения дескриптора перемещения, но мне нужно будет показывать обновленные значения при перемещении вверх и вниз в зависимости от ее положения (proposedDestinationIndexPath).

У кого-нибудь есть идеи, как этого добиться?

1 Ответ

3 голосов
/ 18 марта 2012

Вы можете изменить содержимое ячейки в tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath:.

- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath {
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:sourceIndexPath];
    cell.textLabel.text = [NSString stringWithFormat:@"Moving Cell to %d %d", proposedDestinationIndexPath.section, proposedDestinationIndexPath.row];
    return proposedDestinationIndexPath;
}

Однако, если вы на самом деле не пытаетесь переместить ячейку в новый indexPath, этот метод не вызывается.Поэтому, если вы просто переместите ячейку на несколько пикселей вверх и вниз, вы не сможете изменить текст.Но я думаю, ты не должен так поступать.

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