我有一个简单的代码,可以在点击屏幕时将tapgestureRecognizer添加到Dismis ViewController中,但是它仅在iPhone X 12.1中不起作用。
addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(closeSharing(_:))))
注意:神奇的是,当我将轻按手势识别器添加到一个新视图时,该约束等于该视图也无法正常工作,但是如果我将新视图所约束的不等于视图,则该工作正常。有人知道为什么吗?。
答案 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)