ios - UITapGesture 在 Popup 类上无法按预期工作
问题描述
我创建了一个Popup class
在我的应用程序中使用,并且我想UITapGestureRecognizer
在黑色层不透明度中添加一个,当用户在弹出窗口之外触摸它时会自动关闭。但手势未被识别。我给你看我的代码Popup class
class Popup {
let supView : UIView!
let blackVoile = UIView()
init(superView viewToInsert : UIView){
self.supView = viewToInsert
build()
}
private func build(){
blackVoile.frame = supView.bounds
blackVoile.layer.backgroundColor = UIColor.black.cgColor
blackVoile.isUserInteractionEnabled = true
let closeGesture = UITapGestureRecognizer(target: self, action: #selector(self.close))
blackVoile.addGestureRecognizer(closeGesture)
}
func show(){
supView.addSubview(blackVoile)
}
@objc func close(){
print("close function")
self.blackVoile.removeFromSuperview()
}
}
close func
从未被调用。并且上面没有其他覆盖层blackVoile UIView
这是我打电话给我的班级的时候:
let newPopup = Popup(superView : self.view)
newPopup.show()
我是初学者,也许我们不能向没有 UIView 实例的类添加手势?
解决方案
你的问题opacity
。如果我们对此进行任何opacity
处理,zero
那么该视图将被视为隐藏。所以,你tapGesture
不工作。
更新
var newPopup : Popup!
override func viewDidLoad() {
super.viewDidLoad()
newPopup = Popup(superView : self.view)
newPopup.show()
}
推荐阅读
- javascript - 在 JS 中获取更新的 PHP 数据
- vba - VBA根据选择和预定列在过滤列表中选择可见范围
- python - Django 查看测试:无法从客户的帖子中提取上下文
- clang++ - Clang 格式输出错误
- csv - 框架库只能找到我的 CSV 文件的 1 列
- c# - 在 ASP.NET MVC 应用程序中创建的多个单例实例
- javascript - Angular 4 - 使用@ViewChild 未定义对父元素视图的访问
- java - ARCore:如何在表面上显示设备中保存的图像
- arrays - 逻辑应用程序 - 迭代来自 HTTP 调用的 JSON 输出
- javascript - 如何在Javascript中滚动半页