我正在创建一个列表应用,用户可以在其中检查项目,在短暂延迟后检查时,已检查的项目移动到底部(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;
}
有什么方法可以解决这个问题吗?或者解决这个问题?
答案 0 :(得分:1)
您可以标记表格单元格,并在将单元格从一个部分移动到另一个部分时重新检查它。