有没有办法在编辑UITableView时隐藏“ – ”(删除)button

在我的iPhone应用程序,我有一个UITableView编辑模式下,用户只允许重新sorting行没有删除权限给出。

那么有什么办法可以隐藏TableView中的“ – ”红色button。 请告诉我。

谢谢

这是我完整的解决scheme,没有缩进(0leftalignment)的单元格!

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { return YES; } - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{ return UITableViewCellEditingStyleNone; } - (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath { return NO; } - (BOOL)tableView:(UITableView *)tableview canMoveRowAtIndexPath:(NSIndexPath *)indexPath { return YES; } 

Swift 3相当于接受的答案只是所需的function:

 func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool { return false } func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle { return .none } 

这将停止缩进:

 - (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath { return NO; } 

我面临类似的问题,我想要自定义checkbox出现在编辑模式,而不是'( – )'删除button。

斯蒂芬的回答引导我朝着正确的方向前进。

我创build了一个切换button,并将其作为editAccessoryView添加到单元格,并将其连接到一个方法。

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { .... // Configure the cell... UIButton *checkBoxButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 40.0f, 32.0f)]; [checkBoxButton setTitle:@"O" forState:UIControlStateNormal]; [checkBoxButton setTitle:@"√" forState:UIControlStateSelected]; [checkBoxButton addTarget:self action:@selector(checkBoxButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; cell.editingAccessoryType = UITableViewCellAccessoryCheckmark; cell.editingAccessoryView = checkBoxButton; return cell; } - (void)checkBoxButtonPressed:(UIButton *)sender { sender.selected = !sender.selected; } 

实现了这些委托方法

 - (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath { return NO; } - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleNone; }