2014-11-05 11 views
9

I "m próbując wdrożyć długie naciśnięcie gest rozpoznawania na WKWebView następująco:systemów iOS 8 gest rozpoznawania nie działa na WKWebView z szybkim

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") 

} 

i nie pojawia się błąd, ale nie mogę wydają się to wywołać funkcję onLongPress.

+0

spróbuj tego: https://github.com/theniceboy/HoldToSaveImage – David

Odpowiedz

16

nie ustawić delegate z rozpoznawania gestów.

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

W przypadku, że nadal nie działa, może to prawdopodobnie spowodowane WKWebView ma już własne narzędzie do rozpoznawania gestów. Następnie dodaj następującą metodę do klasy:

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

A w wydarzeniu metoda kontroli na gest zaczął:

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

to działa ! ale teraz zdarzenie jest uruchamiane ciągle zamiast raz, jaki byłby właściwy sposób radzenia sobie z nim? – Gilad

+0

Cieszę się, że mogę Ci pomóc! Zaktualizowałem swoją odpowiedź. – zisoft

+0

działa świetnie dzięki! – Gilad

Powiązane problemy