UITableView编辑模式

我有UITableView ,我试图在编辑模式下默认加载它。 问题是当我这一行table.editing=TRUE; 我的行消失了,我实现了这个方法:

 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { // Return NO if you do not want the specified item to be editable. return YES; } - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleDelete; } - (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath { return NO; } 

但没有运气。 我该怎么办?

正如Anish指出的那样

 [tableView setEditing: YES animated: YES]; 

但是你需要在viewWillAppear视图事件中使它工作。

尝试这个…

 [tableView setEditing: YES animated: YES]; 

在ViewDidLoad中写入

 UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit" style: UIBarButtonItemStyleBordered target:self action:@selector(addORDoneRows)]; [self.navigationItem setLeftBarButtonItem:addButton]; 

addORDoneRow

 - (void)addORDoneRows { if(self.editing) { [super setEditing:NO animated:NO]; [_dbSongsTblView setEditing:NO animated:NO]; [_dbSongsTblView reloadData]; [self.navigationItem.leftBarButtonItem setTitle:@"Edit"]; [self.navigationItem.leftBarButtonItem setStyle:UIBarButtonItemStylePlain]; } else { [super setEditing:YES animated:YES]; [_dbSongsTblView setEditing:YES animated:YES]; [_dbSongsTblView reloadData]; [self.navigationItem.leftBarButtonItem setTitle:@"Done"]; [self.navigationItem.leftBarButtonItem setStyle:UIBarButtonItemStyleDone]; } } 

对于多行select

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

注意:有三种编辑风格如下

 UITableViewCellEditingStyleNone, UITableViewCellEditingStyleDelete, UITableViewCellEditingStyleInsert 

注:对于从属性检查器中select多个select集并select并编辑样式为多个

要在编辑模式下加载tableView,你应该在viewDidLoad()调用setEditing(true, animated: false) viewDidLoad()

如果您的视图控制器是UITableViewController的子类,则无需更改,只需进行上述调用即可。 否则,如果你的视图控制器是UIViewController的子类,那么你应该这样调用: tableView.setEditing(true, animated: true)

testingSwift 2.2。

[self.tableView setEditing:!self.tableView.isEditing animated:YES];

Interesting Posts