2010-04-20 5 views
0

J'ai une vue qui est parfois couverte par d'autres vues. Toutefois, si l'utilisateur fait glisser le doigt sur l'écran, je souhaite également faire glisser cette vue sous-jacente sur l'écran.Comment intercepter des événements tactiles globalement?

Je pourrais commencer à faire des vues personnalisées pour tous ceux qui couvrent les sous-vues et transmettre toutes sortes d'événements tactiles, mais c'est un peu lourd. Peut-être qu'il y a une sorte de notification ou une autre façon qu'une sous-classe UIView ou UIControl peut être au courant des événements tactiles qui se produisent maintenant, peu importe où ils se trouvent. En bref: J'ai besoin d'une sous-classe UIView ou d'une sous-classe UIControl qui connaît tous les événements tactiles se produisant sur l'ensemble de l'écran. Ou du moins si cela n'est pas possible, sachez que tout événement tactile se produisant au-dessus d'elle-même dans la même présentation sous-jacente.

Une autre description: Il y a 20 vues, toutes résident dans le même aperçu. La première vue est couverte par 19 autres. Mais si l'utilisateur glisse sur l'écran, cette première vue doit également glisser, elle doit donc être au courant des événements tactiles.

Existe-t-il une meilleure solution pour faire en sorte que les 19 affichages transmettent des événements tactiles? (oui, toutes les 19 vues répondent aux événements tactiles dans cet exemple)

Répondre

1

Peut-être que la méthode hitTest:withEvent: d'UIView vous aidera, cela m'a aidé à réaliser ce que vous essayez dans le passé.

+0

bien, pas vraiment. Cela peut fonctionner dans certaines situations cependant. Malheureusement, si quelqu'un a déjà touché quelque chose, le contact est parti. – dontWatchMyProfile

+0

Désolé si je n'étais pas assez clair. Ainsi, vous attrapez le contact dans le parent UIView, puis parcourez toutes les sous-vues des enfants effectuant un hitTest pour voir lesquelles sont également affectées par le toucher. – adam

Questions connexes