找出已经点击的TableView

时间:2015-04-30 06:27:51

标签: uitableview swift uigesturerecognizer

我的ViewController有多个UITableViews,我为这些单元格添加了UILongPressGestureRecognizer。每当调用手势时,我都想显示一个弹出窗口。当我只有一个TableView时,我可以使用:

if let indexPath = tableView.indexPathForRowAtPoint(recognizer.locationInView(tableView)) {
    // code
}

现在我有多个TableViews我不知道如何告诉方法TableView它应该用来查找indexPath

我应该使用自定义GestureRecognizers作为标识符吗?这似乎不是一个真正好的解决方案,因为我必须为此GestureRecognizer中的每个TableView创建一个新ViewController

有人可以告诉我一个简单的解决方法吗?

2 个答案:

答案 0 :(得分:0)

为每个表视图分配不同的标记。在执行任何操作之前先检查标记...

答案 1 :(得分:0)

假设您的多个表都是视图A的子视图且不重叠:

  • 在视图A中获取手势的位置
  • 检查每个表格视图的frame是否包含位置

一旦找到了一个,那就是被触摸的表格。

或者,您可以依次在每个表格视图中获取手势的位置,并检查它是否在bounds内。