在已处于编辑模式时滑动以删除

时间:2009-09-03 02:43:08

标签: objective-c iphone cocoa-touch uitableview

我有一个使用uitableview的iphone应用程序,我希望始终显示“重新排序”控件,并让用户滑动以删除行。

我目前采用的方法是将tableview置于编辑模式并允许在编辑模式下进行选择

self.tableView.editing = YES;
self.tableView.allowsSelectionDuringEditing = YES;

然后我使用

隐藏红色删除圈子
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewCellEditingStyleNone;
}

- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
    return NO;
}

当桌面视图已经处于编辑模式时,我无法弄清楚如何在右侧显示滑动手势以显示“删除”,是否有人可以指向正确的方向?

或者,如果有人知道如何让单元重新排序控件显示何时不处于编辑模式,那么这也是一个可行的解决方案

欢呼声

2 个答案:

答案 0 :(得分:1)

当用户在给定行上滑动时,您需要在某处存储引用,以便您可以更改editingStyleForRowAtIndexPathshouldIndentWhileEditingRowAtIndexPath返回的值。您最好的选择是在滑动的单元格上使用indexPathForCell并存储它。然后在上面的两个显示方法中,您需要检查NSIndexPath是否相同(我不确定它们是否是相同的指针,或者您是否需要比较节/行值 - 需要测试)。如果匹配,则显示删除按钮。

请注意,您可能需要在tableView上调用reloadData才能显示效果,而无需向后滚动并返回。

答案 1 :(得分:1)

我想知道你现在的方式是否会违反人机界面指南,这会导致应用程序无法获得批准。

我看不出为什么你无法捕捉滑动手势然后用它来“取消隐藏”删除确认的红色删除(停止标志)图标?