基于背景点击删除视图



我有一个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)
        }

最新更新