首先设置好导航栏中的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;
}
在SDK中UITableViewCellEditingStyle定义如下:
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:隐藏删除按钮和设置删除按钮的标题