我有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;
}
但没有运气。我该怎么办?
答案 0 :(得分:61)
Anish 指向使用
[tableView setEditing: YES animated: YES];
但是你需要在viewWillAppear
视图事件中使用它才能使其正常工作。
答案 1 :(得分:10)
试试这个......
[tableView setEditing: YES animated: YES];
答案 2 :(得分:7)
在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];
}
}
用于行的多重选择
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
return YES;
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewCellEditingStyleNone;
}
注意:下面有三种编辑风格
UITableViewCellEditingStyleNone,
UITableViewCellEditingStyleDelete,
UITableViewCellEditingStyleInsert
注意:对于多个选择集,从属性检查器中选择和编辑样式为多个
答案 3 :(得分:2)
要在编辑模式下加载tableView,您应该在setEditing(true, animated: false)
中致电viewDidLoad()
。
如果您的视图控制器是UITableViewController
的子类,则无需更改,只需进行上述调用即可。否则,如果您的视图控制器是UIViewController的子类,那么您应该以这种方式进行调用:tableView.setEditing(true, animated: true)
。
使用Swift 2.2测试。
答案 4 :(得分:0)
[self.tableView setEditing:!self.tableView.isEditing animated:YES];