Obtenez touchesBegan sur une sous-vue (UIWebView)

J'ai un UIWebView qui est ajouté comme une sous-vue dans un UIview et je voudrais détecter quand cet UIWebView est touché, mais toucheBegan ne fonctionne tout simplement pas.

Une idée ?

  1. Sous-class UIWebView dans votre code, puis implémentez touchesBegan dans votre class.
  2. Ajoutez le WebView sous-classé en tant que sous-vue de votre UIView.
  3. Appel super dans le UIWebView sous-classé

    - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesBegan: touches withEvent: event]; } 

Sous-classment et attente de touchesBegan ne vous aidera pas, car il ne sera pas appelé.
J'ai sous-classé UIWebView et juste "sangsues" sur ses reconnaisseurs de gestes dans les sous-vues 2 niveaux de profondeur (vous pourriez aller récursivement mais c'est assez pour iOS6-7). Ensuite, vous pouvez faire ce que vous voulez avec l'location tactile et l'état du détecteur de mouvement.

 for (UIView* view in self.subviews) { for (UIGestureRecognizer* recognizer in view.gestureRecognizers) { [recognizer addTarget:self action:@selector(touchEvent:)]; } for (UIView* sview in view.subviews) { for (UIGestureRecognizer* recognizer in sview.gestureRecognizers) { [recognizer addTarget:self action:@selector(touchEvent:)]; } } }