我有一个以编程方式创建的 UITableView
。我现在正在尝试添加使用编辑模式删除行的功能。
我已经添加了这样做的默认方式:
self.navigationItem.leftBarButtonItem = self.editButtonItem;
当您点击按钮时,它会进入编辑模式,并且按钮会变为“完成”按钮。
但是,当我“滑动删除”仅显示删除按钮的行时,现有的编辑按钮不会更改为“完成”。
因为我以编程方式创建了表格 View ,所以我需要做一些额外的事情吗?
下面是我的表格 View 的代码:
- (void)viewDidLoad
{
self.voucherTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 36, 320, self.view.frame.size.height - 36) style:UITableViewStylePlain];
self.voucherTableView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
self.voucherTableView.delegate = self;
self.voucherTableView.dataSource = self;
[self.view addSubview:self.voucherTableView];
self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
// Default table view data source methods go here
- (void)setEditingBOOL)editing animatedBOOL)animated
{
[super setEditing:editing animated:animated];
[self.voucherTableView setEditing:editing animated:animated];
}
- (UITableViewCellEditingStyle)tableViewUITableView *)tableView editingStyleForRowAtIndexPathNSIndexPath *)indexPath
{
return UITableViewCellEditingStyleDelete;
}
- (void)tableViewUITableView *)tableView commitEditingStyleUITableViewCellEditingStyle)editingStyle forRowAtIndexPathNSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
// Commit the delete
}
}
这是我给你的答案:按钮不会更改为“完成”,因为要删除的幻灯片实际上不必在“编辑”模式下完成,它不会让您进入编辑模式。
如果您愿意,可以在执行删除时强制它进入编辑模式,不知道为什么要这样做?
- (void)tableViewUITableView *)tableView commitEditingStyleUITableViewCellEditingStyle)editingStyle forRowAtIndexPathNSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
[tableView setEditing:YES animated:YES];
// Commit the delete
}
}
关于objective-c - iOS "swipe to delete"未更改编辑按钮状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7299583/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |