如何防止UITableViewCell从其自己的部分移开?

时间:2012-06-20 11:21:38

标签: iphone objective-c ios uitableview

我的UITableView有3个部分。只有第二部分中的单元格可以移动:

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
    BOOL canMove = NO;
    if (indexPath.section == 1) {
        canMove = YES;
    }
    return canMove;
}

但是,第二部分中的单元格(B)(最初包含A``B``C个单元格)可以移动到第一部分(最初只包含T单元格):

enter image description here

如何确保其自己的部分中移动

1 个答案:

答案 0 :(得分:9)

我认为这将解决您的问题

- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath
{
    if( sourceIndexPath.section != proposedDestinationIndexPath.section )
        return sourceIndexPath;
    else
        return proposedDestinationIndexPath;
}

来自Apple documentation

  

此方法允许自定义特定的目标行   行,因为它在表视图中上下移动。作为拖动的行   悬停在另一行上,目标行向下滑动到   在视觉上为搬迁腾出空间;这是确定的位置   by proposedDestinationIndexPath。