【问题标题】:UITableViewCell delete button without editing mode (like mail app)没有编辑模式的 UITableViewCell 删除按钮(如邮件应用程序)
【发布时间】:2012-06-10 16:20:29
【问题描述】:
不确定此功能是否内置于 UITableViewCell,但我想模仿邮件应用程序的行为。我有一个带有动态单元格的UITableView。当用户执行向左滑动手势时,一个删除按钮(我相信邮件应用程序中的按钮文本是归档而不是删除)应该出现在单元格的右侧。
我对删除该行之后的操作感到满意。如果用户向右滑动或点击UITableView 中的任何其他位置,我只需让按钮出现并消失。
我宁愿这样做而不添加“编辑”UINavigationItem 按钮并将 tableView 置于编辑模式,按照“表视图编程指南”,但感谢使用任何内置方法。
谢谢。
【问题讨论】:
标签:
iphone
objective-c
uitableview
【解决方案1】:
-tableView:canEditRowAtIndexPath: 委托不会导致按钮在滑动时显示。您可以使用它来确定您希望允许编辑(删除)哪些行,如果您希望允许编辑所有行,则可以将其保留为未实现。但是,要在滑动时显示删除按钮而不将表格视图置于编辑模式,您需要实现:
- (void)tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Get the object you want to remove from your
// collection and delete it here.
}
}
【解决方案2】:
将 UITableViewDelegate 方法 -tableView:canEditRowAtIndexPath: 添加到您的控制器。对可以删除的行返回 YES。