在点击UITableViewCell时无法看到删除按钮

时间:2011-06-23 12:06:07

标签: iphone objective-c cocoa-touch uitableview

我正在尝试从UITableViewCell删除UITableView

已对UITableViewDelegate实施UITableViewDataSourceUIViewController

同时实现需要为上述委托定义的所有方法,例如

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath;
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath;

将UITableView也设置为编辑模式,

  [tableView setEditing:YES animated:YES];

当我点击删除按钮在编辑模式下设置tableView时,我可以看到'-ignign红色按钮但是当我点击该按钮时无法看到“删除”按钮时,也无法看到在细胞上滑动时。

我浏览了 stackoverflow 中的所有帖子,但无法获得解决方案。

提前致谢。

4 个答案:

答案 0 :(得分:2)

我认为你错过了 tableView:editingStyleForRowAtIndexPath 方法。尝试将以下代码添加到您的实现中。

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewCellEditingStyleDelete;
}

答案 1 :(得分:0)

继承人我用来实现这个目标:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
    [myArray removeObjectAtIndex:indexPath.row];
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}

答案 2 :(得分:0)

请删除

[tableView setEditing:YES animated:YES];

并使用此方法

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return YES if you want the specified item to be editable.
    return YES;
}

并对删除按钮执行操作 - (void)tableView:(UITableView *)tableView commitEditingStyle:

(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
 //add action on delete button
}

答案 3 :(得分:0)

此方法用于在滑动选定的TableViewCell时显示删除按钮。

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView 
       editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
}

此方法将在滑动TableViewCell

时执行点击删除按钮的操作
- (void)tableView:(UITableView *)tableView 
        commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
        forRowAtIndexPath:(NSIndexPath *)indexPath {
}

此方法将在从表视图中删除行

后更新tableview
- (void)tableView:(UITableView *)tableView 
                   didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath {
}