2017-08-29 3 views
0

J'ai ajouté un tapGesture à mon UIImageView rDot. Le problème est quand je tape sur rDot rien ne se passe et il n'imprime pas "Cela a fonctionné". rDot est dans une vue de pile avec d'autres éléments, je ne sais pas si cela a quelque chose à voir avec ça ne marche pas. rDot et redDot sont deux UIImageView séparés.tapGesture non exécuté

override func viewDidLoad() { 
    super.viewDidLoad() 

     rDot.isUserInteractionEnabled = true 
     let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(rdotimageTapped(tapGestureRecognizer:))) 
     rDot.addGestureRecognizer(tapGestureRecognizer)       
} 

func rdotimageTapped(tapGestureRecognizer: UITapGestureRecognizer) { 
     whiteD?.isHidden = true 
     redDot?.isHidden = false 
     print("It worked") 
    } 
+1

Essayez ceci après avoir ajouté 'gesture', pourrait travailler pour vous:' view.bringSubview (toFront: RDOT) ' – Santosh

+0

essayer d'ajouter sélecteur par action': #selector (MyClass.rdotimageTapped (_ :)) ' –

+0

@Santosh Merci, c'est l'impression, mais maintenant les images ne deviennent pas cachées ou non cachées. Les deux images sont sur un viewController différent. – Tabj

Répondre

1

Vous devez apporter le subView à l'avant depuis que vous avez mis le imageView au sein stackView. Parfois, la hiérarchie de vue ne reconnaît pas le subviews engagé.

override func viewDidLoad() { 
    super.viewDidLoad() 

    rDot.isUserInteractionEnabled = true 
    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(rdotimageTapped(tapGestureRecognizer:))) 
    rDot.addGestureRecognizer(tapGestureRecognizer) 
    view.bringSubview(toFront: rDot)     
}