删除任意单元格时,表头视图会向左滑动

时间:2015-08-05 20:41:41

标签: ios objective-c iphone uitableview

我一直在这个问题上摸不着头脑。到目前为止我找不到任何解决方案,所以我决定创建一个问题。我很感激帮助。

我的问题:

当我尝试删除表格视图中的任意单元格并将其与我要删除的单元格一起删除时,我的表格视图标题进入没有值的删除模式。我没有使用可重复使用的单元格,我不确定是什么导致了这个问题。

这是表视图标题当前的样子: enter image description here 这就是我想要实现的目标: enter image description here 至于代码:

这是我设置表格视图标题的方式:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.containerTableView.allowsMultipleSelectionDuringEditing = NO;
    if (self.isCorrectDataType)
    {
        UITableViewCell *cell = [[UITableViewCell alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 44)];
        cell.backgroundColor = [UIColor blackColor];
        self.containerTableView.tableHeaderView = cell;
    }
}

这是我启用编辑模式和删除单元格的方式:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    return [self.data count] > 0 ? YES : NO;
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete)
    {        
        [self.data removeObjectAtIndex:indexPath.row];

        NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self.data];
        [self.defaults setObject:data forKey:@"userContent"];
        [self.defaults synchronize];
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    }
}

1 个答案:

答案 0 :(得分:1)

您不应将UITableCell用于自定义标头。尝试使用UIView。请参阅此答案中的示例:Customize UITableView header section