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];