有没有办法在编辑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; }