【问题标题】:swipe to delete when already in edit mode已处于编辑模式时滑动删除
【发布时间】:2009-09-03 02:43:07
【问题描述】:

我有一个使用 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;
}

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

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

干杯

【问题讨论】:

  • 只是想补充一点,我已经对这个问题进行了 很多 研究(我有完全相同的要求),我不相信没有实现你自己的滑动逻辑。我也不相信在非编辑模式下显示重新排序控件而不类似地复制苹果的大部分逻辑是可能的。
  • 你这样做了吗?

标签: objective-c iphone cocoa-touch uitableview


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我想知道您现在的发展方向是否会违反人机界面指南,从而导致应用无法获得批准。

    我不明白为什么您不能捕捉滑动手势,然后使用它来“取消隐藏”红色删除(停止符号)图标以进行删除确认?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多