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 动画问题