2011-09-13 3 views
1

J'ai un viewController qui a un UIView comme une sous-vue, je me demandais comment je pourrais dire si et seulement si l'utilisateur a cliqué sur l'UIView du Viewcontroller.Détecter si toucher sur un UIView

Est-ce possible? Merci!

Répondre

1

Vérifiez la documentation UITapGestureRecognizer:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITapGestureRecognizer_Class/Reference/Reference.html

Vous instancier un UITapGestureRecognizer dans votre UIViewController, en utilisant initWithTarget: l'action (le passage d'un sélecteur qui traitera votre robinet). Ajoutez ensuite UIGestureRecognizer à votre UIView via la méthode addGestureRecognizer.

+0

Mais cela implique que d'un robinet, si l'utilisateur est pressant et puis en faisant glisser le doigt à l'intérieur de l'UIView, je pensais utiliser 'touchesBegan:' mais je ne sais pas comment. –

+0

hmmm, je suppose que j'ai mal compris la question, et je pensais que vous vouliez seulement savoir à propos de robinets. Vous pouvez choisir parmi de nombreux outils de reconnaissance de gestes si vous souhaitez capturer d'autres comportements utilisateur. Je n'utiliserais touchesBegan que si vous voulez capturer un comportement qui n'est pas couvert par une sous-classe GestureRecognizer existante. – evanflash

1

Vous pouvez utiliser les méthodes touchesBegan, touchesMoved et touchesEnded. En fonction de l'application, vous pouvez aussi utiliser touchesCancelled. Si aucune de ces méthodes ne fonctionne, vous pouvez utiliser UIGestureRecognizers - UIPanGestureRecognizer et UITapGestureRecognizer.

Juste au cas où il pourrait être utile, vous pouvez également utiliser deux systèmes de reconnaissance de geste en même temps en utilisant la méthode

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
Questions connexes