实现UITableView简单的删除功能(左滑出现删除按钮)
-
首先UITableView需要进入
编辑模式
。实现下面的方法,即使什么代码也不写也会进入编辑模式:- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { }
-
当点击出现的
Delete
按钮时,会调用上面这个方法,所以在这个方法里面可以实现进行删除操作的一些逻辑,比如:- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { // 首先修改model [self.books removeObjectAtIndex:indexPath.row]; // 之后更新view [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; }
-
如果想要修改
Delete
这个按钮的文本,可以实现下面的代理方法:- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath { return @"删除"; }
这种方式可以很快捷的实现系统自带的简单删除方法,并且当UITableView进入编辑模式的时候(出现Delete按钮),继续点击cell则会自动取消编辑模式,非常方便。
-
在一些应用中可能会看到,当用户点击一个按钮的时候,UITableView里面的cell的左边会出现一个红色圆,里面是一个
-
,当点击这个-
的时候会出现左滑效果
,出现Delete
按钮。如何实现的呢?UITableView有一个
editing
属性,如果将这个属性设置为YES
,那么就会进入编辑模式
;同样,设置为NO
,就会退出。上面的提到的例子,当用户点击按钮的时候,就进入
编辑模式
,编辑模式
默认的形式就是在左边有一个红色-
,当用户点击的时候自带左滑
效果出现Delete
按钮。当用户点击Delete
按钮的时候又会调用上面提到的方法。所以说了这么多,只需要将
editing
设置为YES
并实现上面的方法就可以达到上述效果。
虽然UITableView的这种删除操作很简单,但是如果你希望实现更多的功能——比如可以同时删除同行数据。具体的操作可以参考下一篇文章。