CKT
CKT

Reputation: 1217

How to pass single touch events to super view in UIWebView?

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 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.

Upvotes: 0

Views: 4324

Answers (2)

vicky
vicky

Reputation: 21

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
    }
}

Upvotes: 0

William Niu
William Niu

Reputation: 15853

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.

Upvotes: 1

Related Questions