UITableView的编辑模式

实现UITableView简单的删除功能(左滑出现删除按钮)

  1. 首先UITableView需要进入编辑模式。实现下面的方法,即使什么代码也不写也会进入编辑模式:

    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
    {
    
    }
    
  2. 当点击出现的Delete按钮时,会调用上面这个方法,所以在这个方法里面可以实现进行删除操作的一些逻辑,比如:

    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
    {
         // 首先修改model
     [self.books removeObjectAtIndex:indexPath.row];
         // 之后更新view
        [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    }
    
  3. 如果想要修改Delete这个按钮的文本,可以实现下面的代理方法:

    - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        return @"删除";
    }
    

    这种方式可以很快捷的实现系统自带的简单删除方法,并且当UITableView进入编辑模式的时候(出现Delete按钮),继续点击cell则会自动取消编辑模式,非常方便。

  4. 在一些应用中可能会看到,当用户点击一个按钮的时候,UITableView里面的cell的左边会出现一个红色圆,里面是一个-,当点击这个-的时候会出现左滑效果,出现Delete按钮。如何实现的呢?

    UITableView有一个editing属性,如果将这个属性设置为YES,那么就会进入编辑模式;同样,设置为NO,就会退出。

    上面的提到的例子,当用户点击按钮的时候,就进入编辑模式编辑模式默认的形式就是在左边有一个红色-,当用户点击的时候自带左滑效果出现Delete按钮。当用户点击Delete按钮的时候又会调用上面提到的方法。

    所以说了这么多,只需要将editing设置为YES并实现上面的方法就可以达到上述效果。

虽然UITableView的这种删除操作很简单,但是如果你希望实现更多的功能——比如可以同时删除同行数据。具体的操作可以参考下一篇文章。

你可能感兴趣的:(UITableView的编辑模式)