L'ajout de UIGestureRecognizer À la sous-vue par programmation dans Swift
J'ai actuellement une sous-vue qui est créé et ajouté à la UIView dans le ViewDidLoad(). J'essaie d'utilisateur UIGestureRecognizers pour détecter un robinet et d'afficher un bouton particulier. Mon code actuel:
override func viewDidLoad() {
super.viewDidLoad()
architectView = CustomClass(frame: self.view.bounds)
self.view.addSubview(architectView)
let gestureRecognizer = UITapGestureRecognizer(target: self, action: "handleTap:")
gestureRecognizer.delegate = self
architectView.addGestureRecognizer(gestureRecognizer)
}
func handleTap(gestureRecognizer: UIGestureRecognizer) {
let alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
}
La handleTap() la fonction est un simple test pour voir si les robinets sont reconnus. Ce code ne déclenche pas la UIAlert quand il est pressé? Ce qui me manque?
Oui. J'ai édité pour le rendre plus clair
Avez-vous essayé de mettre un point de rupture dans handleTap: pour voir si la fonction est encore appelé?
Ouais, j'ai juste essayé. La fonction n'est pas appelée
Je viens de tester. J'ai créer un débouché pour les principaux UIView et ajouté le UIGestureRecognizer à la vue. La fonction handleTap() n'est pas appelé
Avez-vous essayé de mettre un point de rupture dans handleTap: pour voir si la fonction est encore appelé?
Ouais, j'ai juste essayé. La fonction n'est pas appelée
Je viens de tester. J'ai créer un débouché pour les principaux UIView et ajouté le UIGestureRecognizer à la vue. La fonction handleTap() n'est pas appelé
OriginalL'auteur Andrew Walz | 2016-02-17
Vous devez vous connecter pour publier un commentaire.
J'ai testé ton code et il fonctionne. Cependant, je pense que vous pourriez être absent pour ajouter le
UIGestureRecognizerDelegate
protocole à votre Vue-Contrôleur. Voir ci-dessous:OriginalL'auteur Raphael Silva
Swift 3 version du code sur la base de Raphaël Silva réponse:
OriginalL'auteur mriaz0011