ios - UITableView 删除按钮不会对手势做出反应
Posted
技术标签:
【中文标题】ios - UITableView 删除按钮不会对手势做出反应【英文标题】:ios - UITableView delete button won't react to gesture 【发布时间】:2017-05-05 18:18:54 【问题描述】:我有一个自定义表格视图单元格,左侧有一个切换按钮。
当tableview的isEditing属性设置为true时,删除编辑选项会正常显示,但是当它被点击时,什么都没有发生。
奇怪的是,当我点击并按住,然后拖动到远离按钮的一侧,然后抬起时,单元格终于滑了过来。这根本不是它应该的工作方式。
即使我从情节提要和子类中删除与切换按钮的连接,它仍然会以这种方式运行。
为什么要这样做?
【问题讨论】:
你解决过这个问题吗?我有完全相同的问题。还有,很棒的设计!我的应用程序中几乎有相同的小红圈哈哈 我放弃了!我在编辑模式下停止使用删除选项。删除项目的唯一方法是离开编辑模式并在单元格上滑动,直到出现删除按钮。所以在这种情况下,编辑模式只是用于重新排列列表中的项目。 我想通了,我在表格的视图控制器中使用了手势识别器。它以某种方式干扰了水龙头。我添加了这一行,它修复了所有问题。tapRecognizer.CancelsTouchesInView = false;
【参考方案1】:
首先,如果我错了,请纠正我,但我认为这是两个不同的问题。
1.点击“删除编辑”按钮时没有任何反应。我会检查“删除编辑”按钮是否通过 IBAction 正确连接到类文件。
2.细胞滑动行为不是我们想要的。我会检查您所识别的手势是否是点击,而不是向左滑动。
希望对您有所帮助。
【讨论】:
对不起,我应该更清楚一点:最左边的红色圆形删除按钮是当tableView的isEditing
选项为true
时出现的ios系统删除图标,所以我'我很确定我不能直接控制它的 IB 连接。我的自定义按钮是右侧的粉红色圆形按钮,用户可以点击该按钮将任务标记为已完成。【参考方案2】:
您需要在表格视图控制器中添加以下方法
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool
return true
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath)
if (editingStyle == UITableViewCellEditingStyle.delete)
//remove element from your array providing index.row
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
)
【讨论】:
谢谢——我应该提到我已经实现了这些方法。当单元格滑开时出现的“删除”按钮实际上是正确的工作。只是圆形的红色(-)删除按钮不拾取手势。以上是关于ios - UITableView 删除按钮不会对手势做出反应的主要内容,如果未能解决你的问题,请参考以下文章
当显示删除按钮时,IPhone UITableView 抑制显示按钮
iOS开发UITableView中如何删除某一组中某一行的数据?要用啥方法?