滑动删除UITableViewCell非常难以触发

时间:2014-03-11 22:15:50

标签: ios objective-c uitableview

所以我有一个表视图,我希望用户能够向左滑动以显示删除按钮,与邮件应用程序中的工作方式完全相同。我的问题不是我不能让它工作 - 它确实,我可以向左滑动它,它会显示一个删除按钮,用户可以单击它来删除单元格(我通过实现editingStyleForRowAtIndexPath来实现)。我的问题是所需的滑动非常不敏感。你必须非常快速和完美地水平滑动。它不像邮件中的刷卡那么顺畅。这只是它的方式还是我忽略了什么?

我想也许单元格中的视图会以某种方式阻止滑动手势,但是我进入了xib并将所有内容设置为隐藏,但仍然非常难以滑动。我尝试的另一件事是添加我自己的滑动手势识别器来触发删除节目。我尝试将它添加到单元格(不起作用),添加到表视图(nope),我还尝试添加一个清晰的彩色UIView作为最前面的子视图并将其放在那个上,但仍然没有。有什么想法吗?

编辑: 我刚刚创建了一个新项目来测试编辑样式删除功能的响应性 - 非常非常简单的表视图,只是为了看它是如何工作的。在实际项目中,滑动比单元格更容易。我的测试项目和我的实际项目之间没有太多差异:实际在cellForRowAtIndexPath上加载xib,而在测试项目中它使用默认样式化单元格,实际项目在单元格中有图像视图和uilabels而测试项目只是一个uilabel ...什么可能会让它变得如此反应迟钝?

2 个答案:

答案 0 :(得分:4)

事实证明,有一个隐藏在超类中的竞争手势识别器我完全没有注意到。一旦我意识到这一点,就可以通过禁用该屏幕的其他识别器来轻松解决(尽管我相信通过设置手势识别器优先级会有更正确的方法)。无论如何,如果你有类似的问题 - 来自UIGestureRecognizer的非常奇怪/意外的行为 - 我会确保没有其他手势识别器干扰。

答案 1 :(得分:1)

您可以尝试自己推动自己的"。在内置的UITableView中,我们可能会响应向左滑动手势识别器(正如您所说,为了识别,手势必须快速且非常水平)。另一方面,它在Mail中的工作方式是单元格内容实际上包含一个UIScrollView,只能水平滚动 - 这就是你向左滑动时所做的事情,只需像任何滚动视图那样拖动。 (这就是为什么你可以查看删除按钮,然后将消息拖回右边。)