当每个单元格都有一个覆盖它的图像视图时,如何获取表格视图以注册水龙头?

时间:2017-03-31 16:27:48

标签: ios swift

我一直在尝试创建表视图单元格,每个单元格都有一个UIImageView作为它们的背景。但是,当我点击每个单元格时,表视图将不会注册单击,并且不会转换到我已连接的视图控制器,即使在我使用didSelectRowAtIndexPath函数时也是如此。

我意识到这可能是ImageView阻碍表格视图注册单元格点击的能力的问题。然而,当我从左到右拖动手指/鼠标时,细胞将会转换,而不是在水龙头上。我试图在图像视图上使用Tap手势识别器,但它只适用于最顶层的单元而不是全部单元。我该如何解决这个问题?

以下是表格视图单元格的图像,以便您了解我正在使用的内容:http://imgur.com/a/Ku4uD。谢谢!

1 个答案:

答案 0 :(得分:1)

如果在图像视图中取消选中“启用用户交互”,则应解决问题。遇到问题时,请始终检查大多数子视图的用户交互并逐步完成。

我学到的一个技巧是创建一个子类的子类并覆盖touchesShouldCancel,如下所示:

override func touchesShouldCancel(in view: UIView) -> Bool {
    print("touchesShouldCancel")
    //Run extra code that you want when the user selects this view
    //then still retrieve the tap by its parent.
    return false
}

我不确定你的问题究竟是什么,但是我会删除你所拥有的任何信号,通过拖动{{1}顶部中心部分左侧的黄色圆圈来添加一个新信号。在故事板中的ViewController,到你想要它的tableView。给segue一个合适的标识符,然后在viewController下的tableView类中添加tableView didSelectRow

然后在performSegue(withIdentifier: "ChosenIdentifier", sender: indexPath)添加:

prepare forSegue

需要进行任何调整以满足您的特定需求。