cell左滑删除功能
实现方法有两种,都是通过UITableView的代理方法实现:
方法一:
在UITableView 的代理方法中,有一个代理方法:
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath;
在此方法中,使用UI TableViewRowAction 展示cell左滑内容和一些处理动作。
如:
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewRowAction *action = [UITableViewRowAction rowActionWithStyle: UITableViewRowActionStyleDefault title:@“删除” handler:^(){
//在此block块中处理删除逻辑
}];
return @[action];
}
方法二:
用到UITableView中的几个代理方法
//返回 显示删除按钮
1、- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleDelete;
}
//确保cell可以编辑
2、- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
//在此代理方法中显示cell左滑的文字
3、- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
{
return @“删除”;
}
//左滑—>点击删除按钮 调用此代理方法
4、- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
根据indexpath删除相应数据源,并重新加载次行cell数据
[self.dataSourceArr removeObjectAtIndex: indexPath.row];
[self.tableView deleteRowsAtIndexPath:@[indexPath] withRowAnimation:UITableViewRowAnimation];
}