TapGesturecognizer 在 iphone X 12.1 的背景视图中不工作

TapGesturecognizer not working in backgroundview in iphone X 12.1

我有一个简单的代码来添加 taggestureRecognizer 以在点击屏幕时关闭 ViewController,但它仅在 iPhone X 12.1 中不起作用。

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

注意:神奇的是,当我将点击手势识别器添加到新视图时,该约束等于视图也不起作用,但如果我约束新视图不等于视图,则有效。有谁知道为什么吗?

您可能需要在此处检查几项内容:

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

第二步确保你的视图将有手势属性 view.isUserInteractionEnabled = true,否则手势将不起作用。

第三步确保你的视图在你测试的时候出现,你可能遇到了约束问题,所以视图超出了屏幕边界,所以尝试给视图一个backgroundColor = .red 看看它是否存在,或者你可以使用 View Debugger from xCode.

工作手势示例:

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