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

10 iphone cocoa-touch objective-c uitableview

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

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

self.tableView.editing = YES;
self.tableView.allowsSelectionDuringEditing = YES;
Run Code Online (Sandbox Code Playgroud)

然后我使用隐藏红色删除圆圈

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewCellEditingStyleNone;
}

- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

当tableview已经处于编辑模式时,我无法弄清楚如何获取滑动手势以在右侧显示"删除",有人可以指向正确的方向吗?

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

干杯

Mic*_*han 1

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

请注意,您可能需要调用reloadDatatableView 才能显示效果,而无需滚动并再次返回。