У меня есть UIView
, который отображается каждый раз, когда я нажимаю кнопку в другом представлении
@IBOutlet weak var view1: UIView!
@IBOutlet weak var view2: UIView!
@IBAction func showView(_ sender: Any) {
view2.isHidden = false
}
Я хочу добавить жест касания, который позволит мне скрывать view2 при каждом касании снаруживида, и, поскольку эти виды перетаскиваемы, я хочу, чтобы второе представление не было скрываемым при скрытии (чтобы при касании под моим представлением я не рискнул его переместить. Это то, что я пробовал:
var gesture : UITapGestureRecognizer?
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self,
selector: #selector(closeView), name: NSNotification.Name("CloseView"), object: nil)
gesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.closeView))
}
@objc func closeView() {
if view2.isHidden == false {
view2.isUserInteractionEnabled = true
view2.isHidden = false
self.view.removeGestureRecognizer(gesture!)
} else {
view2.isHidden = true
view2.isUserInteractionEnabled = true
self.view.addGestureRecognizer(gesture!)
}
}
let closeTapGesture = UITapGestureRecognizer(target: view, action: #selector(getter: view2.isHidden)
view.addGestureRecognizer(closeTapGesture)
Ничего из этой работы, как я могу сделать?