我正在尝试模仿联系人应用中可编辑表格单元格的行为。我已经将UITableViewCell子类化,添加了我自己的UITextField,并设置了行为,如果按下编辑,标签将被隐藏,我的文本字段将被启用,并显示,反之亦然。那部分工作正常。
我不希望我的用户能够删除行,但我无法找到在何处/如何禁用和隐藏单元格左侧的删除按钮。任何建议将不胜感激。
答案 0 :(得分:5)
我应该更清楚。我希望编辑按钮能够隐藏和显示单元格中的各种内容,但我不想显示删除按钮。
我发现对我不想删除的单元格执行以下操作:
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleNone;
}
按下编辑时,视图仍然向右滑动,我的单元格进入编辑模式,但删除按钮消失了。
答案 1 :(得分:0)
Chuck你不能覆盖单击( - )按钮时调用的方法。但是你可以通过检查表的currrent模式是否处于编辑模式来检测。 所以你要做的就是保留你自己的客户( - )按钮和点击你可以设置任何你想做的事情,它也不会显示删除按钮..正是你想要的:D
快乐iCODING ...
答案 2 :(得分:0)
不相当相同,但我想要的是,如果可以删除一个单元格,以显示删除按钮,如果没有,则弹出一个警告来解释为什么它可以'给用户。
我发现这很棘手,因为虽然我可以在不删除单元格时禁用删除按钮,但这也意味着向右滑动不会调用任何可用于触发警报的操作。 / p>
所以我所做的是让所有细胞被删除"从tableView:canEditRowAtIndexPath
返回YES,然后使用以下代码:
弹出警报,
导致删除按钮,然后用户可以点击它。
// This will be called when the user dismisses the alert.
//
(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
[self.tableView setEditing:NO animated:YES];
}
(void) tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath {
Item *item = [self itemForIndexPath:indexPath];
if ([item canNotBeDeleted] == YES) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Item in use."
message:@"Sorry but you can't delete a grocery item that has been included in a shopping list."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
}