我有一个uiview
var transparentBackground = UIView()
单击按钮时,视图给出了一些属性
@IBAction func UserViewImage(_ sender: UIButton) -> Void {
self.transparentBackground = UIView(frame: UIScreen.main.bounds)
self.transparentBackground.backgroundColor = UIColor(white: 0.0, alpha: 0.4)
UIApplication.shared.keyWindow!.addSubview(self.transparentBackground)
self.opaqueView = self.setupOpaqueView()
self.transparentBackground.addSubview(opaqueView)
UIApplication.shared.keyWindow!.bringSubview(toFront: self.transparentBackground)
self.view.bringSubview(toFront: transparentBackground)
}
,当单击另一个按钮时,视图被完全忽略,并带有一个称为删除的功能。
func handleOKButtonTapped(_ sender: UIButton){
removeAnimate()
}
但是,我希望在单击背景时(视图(以完全忽略视图,就像单击按钮时一样,我做到了:
override func viewDidLoad() {
super.viewDidLoad()
let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(removeAnimate))
self.transparentBackground.addGestureRecognizer(gestureRecognizer)
}
但它不起作用,我不确定我在做什么错。透明背景视图中有一个子视图。
self.transparentBackground.addSubview(opaqueView)
这就是我实现的方式:
viewDidLoad() {
let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(close))
gestureRecognizer.cancelsTouchesInView = false
gestureRecognizer.delegate = self
view.addGestureRecognizer(gestureRecognizer)
}
func close() {
dismiss(animated: true, completion: nil)
}