点击后,我试图隐藏一个视图。为了做到这一点,我使用touchesBegan来检测视图是否被点击以及是否被点击,它应该执行诸如隐藏视图和顶部视图的操作。定义了以下两个视图:

   @IBOutlet weak var theDarkView: UIView!
@IBOutlet weak var theFinalView: UIView!


这是我想到的代码。

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        //-- hides the view whenever its touched
        if let touch = touches.first {
            if touch.view == self.theDarkView {
                if theDarkView.isHidden == false || theFinalView.isHidden == false {
                    theDarkView.isHidden = true
                    theFinalView.isHidden = true
                }
            } else {
                return
            }
        }
    }


如果您可以帮助我,并向我显示正确的方法,并告诉我在哪里弄乱了我的方法,将不胜感激!

最佳答案

您的代码没问题,这也可以完成相同的工作

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
     theDarkView.isHidden = touches.first?.view == self.theDarkView
     theFinalView.isHidden = theDarkView.isHidden
}

10-08 17:43