2013-01-15 1 views
0

Quelque part vers le bas de ma hiérarchie de vue, j'applique une méthode touchesBegan. Il tire sur toutes les touches, sauf pour les robinets à un doigt. Cela me porte à croire que quelque part plus haut dans la hiérarchie, une vue est d'intercepter/manipuler les robinets à un doigt, mais je ne peux pas trouver la vue pour la vie de moi. Y a-t-il un bon moyen de déboguer cela?Comment puis-je détecter quelle vue gère mon tap?

+0

Pensez-vous que hitTest: withEvent: sera utile? Regardez ce fil http://stackoverflow.com/questions/4961386/event-handling-for-ios-how-hittestwitthevent-and-pointinsidewithevent-are-r. – sridevi

+0

Malheureusement, 'hitTest: withEvent:' renvoie la vue qui ne reçoit pas le tap. Il ne semble pas être affecté par le détecteur de mouvement. –

Répondre

0

Essayez cette façon, si elle fonctionne sur:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [[event allTouches] anyObject]; 
    CGPoint touchLocation = [touch locationInView:self.contentView]; 

    for (UIView *view in self.contentView.subviews) 
    { 
     if ([view isKindOfClass:[MyCustomView class]] && 
      CGRectContainsPoint(view.frame, touchLocation)) 
     { 

     } 
    } 
} 
+0

Malheureusement, 'touchesMoved' n'est pas appelé pour le tap. Aucune méthode tactile n'est appelée sur un robinet à un seul doigt. Ils fonctionnent tous parfaitement pour les robinets multi-doigts ou les casseroles ou toute autre touche autre qu'un robinet à un seul doigt. –

Questions connexes