我很好奇是否可以在UITableView上截取“编辑”模式的默认方法。通常,如果您侧面滑动具有与之关联的委托方法的UITableViewCell,则会获得一个免费的“删除”按钮。我想将删除更改为其他任意选择器。我不想删除单元格,而是想运行一个hello world alert对话框。这种程度有可能吗?
答案 0 :(得分:21)
编辑是作为UITableView的委托对象上的方法实现的。在你的表控制器中,有任何控件激活编辑调用:
[tableView setEditing: YES animated: YES];
然后,确保您的委托对象实现了这个:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"Delete"
message: @"Do you really want to delete “George W. Bush”?"
delegate: self
cancelButtonTitle: @"Cancel"
otherButtonTitles: @"Of course!", nil];
}
}
......或者更标准的行动可能是:
[itemList removeObjectAtIndex:indexPath.row];
[table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
答案 1 :(得分:6)
@JFMartin和Marco - 替换标准的“删除”按钮使用以下UITableview委托方法
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
答案 2 :(得分:3)
UITableViewCell上有一个名为editAction
的属性,记录为允许您更改用于在单个单元格上插入或删除的操作(它也使用单元格的target
属性)。我没有测试过,但听起来它可能会做你想要的。
答案 3 :(得分:0)
我将实现UITableViewCell的子类并在那里处理触摸事件。您可能需要自己完成所有动画内容,但我认为这可能是最简单的解决方案。没有用于更改删除按钮的“支持”方法,我不认为