在节之间移动单元格时,UITableView返回错误的indexPath

时间:2013-01-24 14:28:40

标签: ios uitableview

我正在创建一个列表应用,用户可以在其中检查项目,在短暂延迟后检查时,已检查的项目移动到底部(UITableView中的不同部分)。用户可以通过点击它来“取消选中”该项目,然后移回原始部分。

我的问题是当细胞在这样的部分之间移动时,似乎UITableView对于哪个细胞的位置感到“困惑”。

当我NSLog我正在与之交互的单元格的IndexPath.row时,返回的行不同于我正在触摸的行。我使用[self.tableView moveRowAtIndexPath:from_indexPath toIndexPath:to_indexPath];在各部分之间移动单元格。这是我的一些代码:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

switch (indexPath.section) {
    case SECTION_ACTIVE:{
        ItemData *dataForCell = [activeList objectAtIndex:indexPath.row];

       NSLog(@"%@ \t %d",dataForCell.title, indexPath.row);
        if (dataForCell.isHeader) {
           NSLog(@"%d",indexPath.row);
            return 70;
        }
        break;
    }
    default:
        break;
}

return 55;
}

有什么方法可以解决这个问题吗?或者解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以标记表格单元格,并在将单元格从一个部分移动到另一个部分时重新检查它。