IOS - Comment cacher une vue en touchant n'importe où en dehors de ça
Je suis nouveau sur IOS de la programmation, je suis affichant une vue lorsqu'on clique sur un bouton, en utilisant le code suivant à l'intérieur de la méthode bouton.
@IBAction func moreButton(_ sender: Any)
{
self.helpView.isHidden = false
}
d'abord, la self.helpView.isHidden
est définie sur true dans viewDidLoad
méthode pour masquer la vue. Maintenant, comment puis-je rejeter ce point de vue en touchant n'importe où en dehors de la vue. De la recherche, j'ai trouvé qu'il peut être fait par la création d'un bouton transparent qui s'adapte à l'ensemble de la viewController. Alors en cliquant sur le bouton, nous pouvons rendre la vue à rejeter. Quelqu'un peut-il me donner le code swift 3 pour créer un tel bouton.
Ou, si il n'y a aucune autre meilleure façon de cacher la vue, elle est la bienvenue.
Je suis en utilisant Xcode 8.2, swift 3.0
Merci d'avance.
- La manière dont vous lisez devrait être bon et assez facile à mettre en œuvre, vous pouvez également remplacer
touchesBegan
et de vérifier si le contact de la vue est la vue ou pas/ ou de comparer la position de contact pour le cacher
Vous devez vous connecter pour publier un commentaire.
En contact a commencé, vous devez écrire comme
Vous pouvez utiliser
touchesBegan
méthode:À l'intérieur de la moreButton sélectionné, vous pouvez faire quelque chose comme ceci
Dans Swift 4
Vous pouvez créer un autre bouton transparent ou, votre vue de la base (en supposant que c'est une simple vue de dessous du bouton) puis de combler ce que vous essayez de faire. Tout d'abord, vous devez faire tappable. Ensuite, vous voulez pour gérer la logique de ce qui se passe lorsque vous appuyez dessus, ou encore inexploité.
Vous pouvez obtenir ce que vous voulez faire ce qui suit (testé avec Swift 4.1 et Xcode 9.3):
Si vous voulez garder le geste de reconnaissance (peut-être parce que vous ouvrez helpView plus d'une fois) changement dismissView à cette version:
C'est tout...!
Vous pouvez utiliser cette méthode dans swift 4.