在子视图上获取touchesBegan(UIWebView)

我有一个UIWebView,它作为UIview中的子视图添加,我想检测何时触摸这个UIWebView但是touchesBegan只是不起作用。

任何想法 ?

  1. 在您的代码中子类UIWebView,然后在您的类中实现touchesBegan。
  2. 添加子类webview作为UIView的子视图。
  3. 在子类UIWebView中调用super

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

子类化和等待touchesBegan不会帮助你,因为它不会被调用。
我将UIWebView子类化,并且只是在2级深度的子​​视图中“浸入”它的手势识别器(你可以递归地去,但这对于iOS6-7来说已经足够了)。 然后,您可以使用触摸位置和手势识别器的状态执行任何操作。

 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:)]; } } }