首先设置好导航栏中的self.editButtonItem,可以自定义其标题:
self.navigationItem.rightBarButtonItem = self.editButtonItem; [self.editButtonItem setTitle:@"显示按钮"];
并开启可编辑功能:
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { return YES; }
可以使用UITableViewDelegate协议中的方法来实现在Cell中显示删除按钮或插入按钮:
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath;
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { // return UITableViewCellEditingStyleNone; // return UITableViewCellEditingStyleInsert; return UITableViewCellEditingStyleDelete; }
typedef NS_ENUM(NSInteger, UITableViewCellEditingStyle) { UITableViewCellEditingStyleNone, UITableViewCellEditingStyleDelete, UITableViewCellEditingStyleInsert };
在点击右上角的按钮后,每个Cell中显示的按钮如下:
(1)Delete
(2)Insert
(3)None
使用UITableViewDelegate协议中的另一个方法可以自定义删除按钮的标题:
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(3_0);
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath { return @"警告:删除"; }
如果要开启在Cell中向左划时显示删除按钮,必须实现以下方法:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { } else if (editingStyle == UITableViewCellEditingStyleInsert) { } }
Demo下载地址:UITableView:隐藏删除按钮和设置删除按钮的标题