如何在重新排序期间更新UITableViewCell

时间:2012-03-18 16:48:51

标签: ios uitableview

在拖动UITableViewCell时,会调用委托方法- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath。在此委托方法中,我可以根据其proposedDestinationIndexPath设置所选单元格的属性。

我现在的问题是如何在移动过程中更新单元格内容。我可以在释放移动手柄后更新单元格,但是我需要在向上移动时显示更新的值。根据其位置(proposedDestinationIndexPath)确定。

有没有人知道如何实现这个目标?

1 个答案:

答案 0 :(得分:3)

您可以在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,则不会调用此方法。因此,如果您只是将单元格上下移动一些像素,则无法更改文本。但我想你无论如何都不应该这样做。