2

我知道这是 UITableView 处于编辑模式时重新排列 tableviewcells 的默认属性,用户只需重新排序由 UITableViewController 处理的行。

根据 Apple Doc:重新排序行

现在我想要做的是,当我将单元格拖到其他单元格上时,后端单元格不应该自动重新排列,只是我放置拖动单元格的单元格应该重新排列,一种在两个单元格之间交换

为了更好地理解,请参考下图。我应该能够将Jones 转移到 Room1 并且 tableview 控制器应该能够自动将 Smith2 转移到 Room3。

在此处输入图像描述

以下是我正在使用的委托方法:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath {

    NSString *temp = [roomstoringArray objectAtIndex:sourceIndexPath.row];
    [roomstoringArray removeObjectAtIndex:sourceIndexPath.row];

    [roomstoringArray insertObject:temp atIndex:destinationIndexPath.row];

   // [temp release];

}

问题是:

  1. 当我将单元格拖到其他单元格上时,如何阻止其他单元格自动重新排列。
  2. 当一个用来将单元格拖到其他单元格上时,没有一个委托方法会被调用,只有 当一个单元格放在它上面时调用的方法是moveRowAtIndexPath 。因此,即使无法检查某些条件,也没有在现有的 TableView 中找到此增强的任何范围。

TableView 是否有任何属性,我可以在其中停止这种行为以执行两个单元格之间的交换,仅在其余行保持相同 indexPath 的情况下执行。Alos,如果有的话,有人可以帮助我吗?

4

1 回答 1

0

对于您提到的问题,请从此处检查 UITableView Delegates。
以下方法对您有帮助。

targetIndexPathForMoveFromRowAtIndexPath
canMoveRowAtIndexPath

对于 Swap b/w 两行,您可以通过这个答案得到想法。

于 2013-06-10T11:59:38.837 回答