I am using UIWebView
to display pdf. I wanna handle touch events on webview.
There are two conditions, my WebView should handle double touch events and gestures, and i wanna pass single tap/touch 开发者_StackOverflow中文版events to super view.
Can any one please tell me how to differentiate the touch events in UIWebView
and how to pass specific touch events to its super view?
to get the touch events i am subclassing the uiwebview and im overriding the hitTest method in subclass.
If that post is not answering your question, you should check out this article.
I took a similar but slightly different approach: I subclassed a UIView, which contains a UIWebView (and other controls), and override the hitTest:withEvent:
method.
Subclass web view and Use hitTest(_ point: CGPoint, with event: UIEvent?) method in subclass as follows:
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
if let hitTestingView = super.hitTest(point, with: event) {
if shouldHandleTouch // Logic on which this view should handle touch or not. If you don't want to handle always then return nil {
return hitTestingView
} else {
return nil
}
} else {
return nil
}
}
精彩评论