在拖动UITableViewCell
时,会调用委托方法- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath
。在此委托方法中,我可以根据其proposedDestinationIndexPath
设置所选单元格的属性。
我现在的问题是如何在移动过程中更新单元格内容。我可以在释放移动手柄后更新单元格,但是我需要在向上移动时显示更新的值。根据其位置(proposedDestinationIndexPath
)确定。
有没有人知道如何实现这个目标?
答案 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,则不会调用此方法。因此,如果您只是将单元格上下移动一些像素,则无法更改文本。但我想你无论如何都不应该这样做。