2015-06-29 3 views
0

Я пытаюсь понять, как перехватить событие click на UIWebView. Кажется, что правильный жест - UITapGestureRecognizer, но, похоже, я не могу получить представление. Я не смог найти решение быстро. Моя иерархия - View -> UIWebView. Моим вариантом использования является развертывание веб-приложения и некоторые пользовательские действия, основанные на навигации по веб-просмотру. Например, возможность распознавать навигационные события, в которых я хотел бы использовать межстраничное объявление, или отображать UINavigationBar. Спасибо за любую помощь!Перехват UITapGestureRecognizer для UIWebView

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet var Webview: UIWebView! 

    let URLPath = "http://www.example.com" 

    func loadAddressURL(){ 

     let requestURL = NSURL(string: URLPath) 
     let request = NSURLRequest(URL: requestURL!) 
     Webview.loadRequest(request) 

    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     loadAddressURL() 
     NSLog("I'm getting going")   

     //NOT SURE IF YOU SHOULD DISABLE THIS OR NOT 
     //Webview.userInteractionEnabled=false 


     let tapRecognizer = UITapGestureRecognizer(target: self , action: "handleSingleTap:") 
     NSLog("I'm past the tab recognizer!\(tapRecognizer)") 

     tapRecognizer.numberOfTapsRequired = 1 
     Webview.addGestureRecognizer(tapRecognizer) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func handleSingleTap(recognizer: UITapGestureRecognizer) { 
     // 
     NSLog("I made it here") 
    } 

} 

ответ

9

первого набора Жест Делегат и унаследовал geture UIGestureRecognizerDelegate

tapRecognizer.delegate = self 

и вставить этот делегат

func gestureRecognizer(UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer:UIGestureRecognizer) -> Bool 
{ 
    return true 
} 

Попробуйте это, возможно, помочь набитый ...

+1

Its работает нормально на UIWebView –

+2

Я изменил определение класса для 'class ViewController: UIViewController, UIGestureRecognizerDelegate {' в дополнение к другому коду, который вы написали, и теперь он работает. Благодаря! – user2589119

Смежные вопросы