自定义tableView的左滑编辑,系统默认的为红色删除。如果想变成多个按钮,自定义文字和颜色,在写完tableView的代理方法之后用下面的方法即可实现。
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewRowAction *editAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"编辑" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
// 实现相关的逻辑代码
// ...
// 在最后希望cell可以自动回到默认状态,所以需要退出编辑模式
tableView.editing = NO;
}];
editAction.backgroundColor = [UIColor redcolor];
UITableViewRowAction *deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"删除" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
// 首先改变model
// [self.model removeObjectAtIndex:indexPath.row];
// 接着刷新view,删除对应的行
// [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
// 不需要主动退出编辑模式,刷新完成后就会自动退出编辑模式
}];
return @[deleteAction, editAction];
}
“编辑”和“删除”按钮的顺序跟你最后放到数组中的顺序有关。
**
如果只是实现最简单的样式,不妨使用以上的方法,一个方法就可以搞定!
如果想实现相对复杂一些的样式,可以尝试下面推荐的三方。
**
https://github.com/CEWendel/SWTableViewCell
它是一个使用起来很简单的UITableViewCell子类,可以通过左右滑动调出view,view上有工具按钮(和iOS 7的系统Mail类似)。
实现样式任您挑选,快去开始你的新工作吧~
网友评论