2014-11-05 25 views
9

ile WKWebView çalışmıyor i "şöyle bir WKWebView üzerinde uzun basın jest tanıyıcıyı uygulamaya çalışıyorum:iOS8 jest tanıyıcı hızlı

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 bir hata alamadım ama yapmak gibi olamaz o onLongPress işlevini tetikler.

+0

bu deneyin: https://github.com/theniceboy/HoldToSaveImage – David

cevap

16

Sen jest tanıyıcı delegate set vermedi.

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

durumda hala bu olabilir muhtemeleniçin çalışmadığınızaten kendi jest tanıyıcılarına sahiptir. Sonra sınıfa aşağıdaki yöntemi ekleyin:

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

Ve jest için etkinlik yöntemi kontrol altında başladı:

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

çalışır ! ama şimdi olay bir kez yerine sürekli olarak kovuldu, onunla başa çıkmanın doğru yolu ne olurdu? – Gilad

+0

Yardım etmekten memnunum! Cevabımı güncelledim. – zisoft

+0

harika çalışıyor! – Gilad