IOS – Comment cacher une vue en touchant n'importe où en dehors de celle-ci

Je suis nouveau à la programmation IOS, j'affiche une vue quand un button est cliqué, utilisant le code suivant dans la méthode de button.

@IBAction func moreButton(_ sender: Any) { self.helpView.isHidden = false } 

Initialement, self.helpView.isHidden est défini sur true dans la méthode viewDidLoad pour masquer la vue. Maintenant, comment puis-je rejeter cette vue en touchant n'importe où en dehors de la vue. De la search, j'ai trouvé que, cela peut être fait en créant un button transparent qui s'adapte à l'set viewController. Alors, en cliquant sur le button, nous pouvons faire la vue à rejeter. Quelqu'un peut-il me donner le code dans swift 3 pour créer un tel button.

Ou, s'il y a une autre meilleure façon de cacher une vue, elle est la bienvenue.

J'utilise Xcode 8.2, swift 3.0

Merci d'avance.

Au contact a commencé, vous devriez écrire comme

 override func touchesBegan(_ touches: Set<AnyHashable>, withEvent event: UIEvent) { var touch: UITouch? = touches.first //location is relative to the current view // do something with the touched point if touch?.view != yourView { yourView.isHidden = true } } 

Vous pouvez utiliser la méthode touchesBegan pour cela:

 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { self.helpView.isHidden = true } 

À l'intérieur du plus de buttons sélectionnés, vous pouvez faire quelque chose comme ça

  @IBAction func moreButton(_ sender: Any) { self.helpView.isHidden = false let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissView)) view.addGestureRecognizer(tap) } func dismissView() { self.helpView.isHidden = true self.view.removeGestureRecognizer(tap) } 

Vous pouvez créer un autre button transparent ou, votre vue de base (en supposant qu'il s'agit d'une seule vue sous le button), vous pouvez alors répondre à ce que vous essayez de faire. D'abord, vous devriez le rendre tappable. Ensuite, vous voulez gérer la logique de ce qui se passe quand on tape, ou inexploité.