无法从自定义表格视图单元格按钮中删除行

Posted

技术标签:

【中文标题】无法从自定义表格视图单元格按钮中删除行【英文标题】:Cannot delete row from custom tableview cell button 【发布时间】:2012-12-04 15:18:50 【问题描述】:

我有一个带有自定义 tableviewCell 的 tableview。在这个 tableview 单元格中,我有一个用于删除一行的按钮。

首先我通过下面的代码创建了这个tableview。

   UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 70, 320, 150) style:UITableViewStylePlain];
    tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
    tableView.delegate = self;
    tableView.dataSource = self;
    tableView.backgroundColor = [UIColor blackColor];
    tableView.separatorStyle = normal;
    [tableView reloadData];

我有一个约会数组用作我的数据源。在我的 cellForRowAtIndex 中,我使用以下代码将按钮附加到操作。

 cell.btnDelete.tag = indexPath.row;
    [cell.btnDelete addTarget:self action:@selector(deleteAppointment:) forControlEvents:UIControlEventTouchUpInside];

然后我有自己的行动。

-(void)deleteAppointment:(id) sender
        NSLog(@"till here");
    UIButton *button = (UIButton *)sender;
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:button.tag inSection:0];
    NSLog(@"indexpathc: %d",indexPath.row);

    [tableView beginUpdates];
    [tableView deleteRowsAtIndexPaths: [NSArray arrayWithObject:indexPath]
                     withRowAnimation: UITableViewRowAnimationFade];
    [_exceptions removeObjectAtIndex:indexPath.row];
    [tableView endUpdates];

它在我的日志中返回正确的索引路径,但它不会删除我的 tableview 中的行。有人可以帮帮我吗?

亲切的问候

【问题讨论】:

【参考方案1】:

您还需要更新方法numberOfRowsInSection。例如,如果您将元素保存在数组中,请从中删除一个元素并在 numberOfRowsInSection 中返回更新后的数组。

【讨论】:

以上是关于无法从自定义表格视图单元格按钮中删除行的主要内容,如果未能解决你的问题,请参考以下文章

如何从自定义表格视图单元类中获取对表格视图控制器的引用

从自定义单元格重新加载表格视图数据

将数据从自定义表格视图单元格传递到 UIView 控制器

从自定义表格视图单元格类加载时如何调整单元格的高度?

从自定义单元格 iPhone 中的 textField 获取值

Obj-C - 点击自定义表格视图单元格中的删除表格视图行按钮