TapGesturecognizer在iPhone X 12.1的backgroundview中不起作用

时间:2019-03-25 08:51:33

标签: swift uitapgesturerecognizer

我有一个简单的代码,可以在点击屏幕时将tapgestureRecognizer添加到Dismis ViewController中,但是它仅在iPhone X 12.1中不起作用。

addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(closeSharing(_:))))

注意:神奇的是,当我将轻按手势识别器添加到一个新视图时,该约束等于该视图也无法正常工作,但是如果我将新视图所约束的不等于视图,则该工作正常。有人知道为什么吗?。

1 个答案:

答案 0 :(得分:1)

您可能需要在此处检查几件事:

第一步,请确保您的主视图没有被遮盖,例如另一个顶视图会破坏您的点击手势,因此请将手势添加到顶视图中。

第二步,请确保具有手势的视图应具有属性view.isUserInteractionEnabled = true,否则手势将无法工作。

第三步,请确保在测试时显示视图,您可能会遇到约束问题,因此该视图超出了屏幕范围,因此请尝试为视图提供backgroundColor = .red查看它是否存在,或者您可以从xCode使用 View Debugger

工作手势示例:

    let viewToDismiss = UIView(frame:UIScreen.main.bounds)
    viewToDismiss.isUserInteractionEnabled = true
    let tap = UITapGestureRecognizer(target: self, action: #selector(closeSharing(_:)))
    tap.numberOfTapsRequired = 1
    viewToDismiss.addGestureRecognizer(tap)