我在让UITapGestureRecognizer注册用户的触摸时遇到了一些麻烦 . showMenu() 函数应该向用户显示部分透明的blackView,并且我已经实现了手势识别器,以便当用户点击blackView时,_1822625被调用并使视图淡入淡出 .
在我的XCode控制台中,我没有收到代码中指定的打印消息“dismissed” .
提前致谢!
func showMenu(){
print("show")
if let window = UIApplication.sharedApplication().keyWindow{
blackView.backgroundColor = UIColor(white: 0, alpha: 0.5)
blackView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(dismiss)))
window.addSubview(blackView)
blackView.frame = window.frame
blackView.alpha = 0
//Added this line
blackView.userInteractionEnabled = true
UIView.animateWithDuration(0.5){
self.blackView.alpha = 1
}
}
}
func dismiss(){
print("dismiss")
UIView.animateWithDuration(0.5){
self.blackView.alpha = 0
}
}
EDIT: 我似乎是blackView以上的任何东西,我还明确设置了blackView以允许用户交互 .
EDIT: “视图层次结构调试”界面的屏幕截图 .
2 回答
如果将Alpha视图更改为零,则会停止获取触摸事件 .
您可以尝试将视图的背景颜色更改为透明,而不是更改视图的alpha,这样您的视图将不可见,并且您可以获得事件
将其添加到您的代码中 . 它识别是否有1次触摸然后你可以调用你的解雇方法 .