如何区分用户点击我的表格视图单元格和用户点击单元格中包含的子视图?

Posted

技术标签:

【中文标题】如何区分用户点击我的表格视图单元格和用户点击单元格中包含的子视图?【英文标题】:How do I tell the difference between the user tapping my table view cell and the user tapping a subview contained within the cell? 【发布时间】:2013-02-11 20:27:16 【问题描述】:

我的一个视图控制器包含一个带有自定义 UITableViewCell 的 UITableView。我的自定义 UITableView 单元格包含一个 UIImageView 子视图,它代表一个 tappable 图标。当用户点击自定义单元格上的任何位置时,除了图标子视图,我希望我的 didSelectRowAtIndexPath 方法像正常一样被调用。但是当我的图标子视图被点击时,我想要一种不同的方法来调用,但我不知道如何做到这一点。我是否在 touchesDidBegin 方法中捕获了触摸位置并手动检查用户是否点击了图标?那感觉太hacky了。其他更简洁的想法?

非常感谢您的智慧!

【问题讨论】:

【参考方案1】:

只需在单元格中的 UIImageView 中添加一个 tapGestureRecognizer

【讨论】:

那么你将不得不添加一些额外的东西来照顾忽略你不想要的触摸。这并不完全是重复的,但我认为您会发现信息 here 很有用。 但是我该如何判断图标是哪个单元格的子视图?我仍然需要确定点击了表格的哪一行。 没关系,我刚刚意识到 GestureRecognizer 有一个 view 属性,我可以用它来确定它属于哪个表格视图单元格。

以上是关于如何区分用户点击我的表格视图单元格和用户点击单元格中包含的子视图?的主要内容,如果未能解决你的问题,请参考以下文章

在集合视图中有包含数据的单元格和空单元格

在点击识别器时识别表格单元格

如何使用自定义表格视图单元格中识别的点击手势从 UILabel 呈现视图控制器?

如何从表格视图中的单元格点击图像视图

在包含可点击标签的表格视图单元格中接受双击和单击

如何在同一个xib中放置自定义单元格和表格视图?