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

Posted

技术标签:

【中文标题】TapGesturecognizer 在 iphone X 12.1 的背景视图中不起作用【英文标题】:TapGesturecognizer not working in backgroundview in iphone X 12.1 【发布时间】:2019-03-25 08:51:32 【问题描述】:

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

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

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

【问题讨论】:

你在哪里添加点击手势? 在 viewDidLoad 中,我测试将其添加到界面生成器中,但它也无法正常工作 谢谢你,现在它工作了,我不知道为什么,但也许我的 xcode 或我的模拟器出错了。 【参考方案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)

【讨论】:

感谢您的回答,但我已经检查了所有这些,但它仍然无法仅在 iphoneX 12.1 模拟器中工作。 谢谢你,现在它工作了,我不知道为什么,但也许我的 xcode 或我的模拟器出错了。

以上是关于TapGesturecognizer 在 iphone X 12.1 的背景视图中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

NSFetchedResultsController 和 UITableView 动画问题

UIImagePickerController 问题 - iPhone

iOS推送

视图高度降低

再见!iPad mini

无法使用initWithUUIDString创建NSUUID