2014-11-05 2 views
9

я "м пытается реализовать длинный пресс жест распознаватель на WKWebView следующим образом:ios8 жест распознаватель не работает на WKWebView с быстрым

var webView: WKWebView? 
let longPressRecognizer = UILongPressGestureRecognizer() 

override func loadView() { 
    super.loadView() 

    var webViewConfig: WKWebViewConfiguration = WKWebViewConfiguration() 
    webViewConfig.allowsInlineMediaPlayback = true 
    webViewConfig.mediaPlaybackRequiresUserAction = false 

    self.webView = WKWebView(frame: self.view.frame, configuration: webViewConfig) 
    self.view = self.webView! 

    //hook the long press event 
    longPressRecognizer.addTarget(self, action: "onLongPress:") 
    self.webView!.scrollView.addGestureRecognizer(longPressRecognizer) 
}  

func onLongPress(gestureRecognizer:UIGestureRecognizer){ 
    NSLog("long press detected") 

} 

я не получаю ошибку, но я не могу показаться, чтобы сделать это вызвать onLongPress функцию.

+0

попробовать это: https://github.com/theniceboy/HoldToSaveImage – David

ответ

16

Вы не установили delegate жеста распознаватель.

//hook the long press event 
longPressRecognizer.delegate = self 
longPressRecognizer.addTarget(self, action: "onLongPress:") 
self.webView!.scrollView.addGestureRecognizer(longPressRecognizer) 

в случае, если он по-прежнему не работает, это может, вероятно, из-заУуже есть свои распознаватели жестов. Затем добавьте следующий метод к классу:

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

И в вашем событии проверки метода для жеста стали:

func onLongPress(gestureRecognizer:UIGestureRecognizer){ 
    if gestureRecognizer.state == UIGestureRecognizerState.Began { 
     NSLog("long press detected") 
    } 
} 
+1

это работает ! но теперь событие запускается непрерывно, а не один раз, каков был бы правильный способ борьбы с ним? – Gilad

+0

Рад помочь! Я обновил свой ответ. – zisoft

+0

Огромное спасибо! – Gilad

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