iOS UITableView - 向左滑动并单击单元格时显示删除按钮

时间:2014-04-11 01:48:36

标签: ios objective-c uitableview

我有UITableView并且还实现了滑动以显示删除按钮的逻辑,如下所示:

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
     return YES;
} 

-(void)tableView:(UITableView *)tableViefw commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
     if (editingStyle == UITableViewCellEditingStyleDelete {
         //logic to delete...
     }
}

但是,当用户点击表格单元格时,我还需要一种方法来显示删除按钮。这可能吗?

我已经看到其他建议使用[tableView setEditing: true]的答案,但这也显示左侧的红色图标,我不想要这样。

感谢。

2 个答案:

答案 0 :(得分:1)

如果您继承UITabeViewCell,那么您可以使用didSelectRowAtIndexPath:方法获取单击的单元格,然后您可以显示删除按钮(您需要的任何设计),以及何时单击该单元格在数据源前面被删除,并且tableView得到更新,是否有框架方式,我不知道。

但祝你好运:)

答案 1 :(得分:0)

尝试这种方法..

  • 删除行时,您必须从array中删除该数据。之后,您需要再次重新加载tableview以显示更新的tableview

- (void)viewDidLoad
 {
      Your_tableview.editing=YES;

      [super viewDidLoad];
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(editingStyle == UITableViewCellEditingStyleDelete)
    {
        NSLog(@"Delete Success");
        [Your_Array removeObjectAtIndex:indexPath.row];
        [self.Your_tableView reloadData]
    }
    else
    {
         NSLog(@"Delete Canceled");
    }

}