2010-11-14 66 views
0

我正在寫一個iPad應用程序,我在UIViewController內激烈使用UIWebView垂直於UIWebView的UISwipeGestureRecognizer滾動:如何避免對角線滑動?

我正在綁定幾個動作來滑動手勢識別器。他們檢測到左右滑動。由於我的Web視圖上下滾動,所以很容易嘗試水平滑動並使Web視圖向上或向下滾動一下,最終失敗手勢識別器。

那麼有什麼辦法可以避免這種行爲?也許檢測到水平滑動的開始並鎖定UIWebView的垂直位置?

謝謝!

回答

0

您可以攔截continueTrackingWithTouch:withEvent調用並選擇性地返回NO - 或者甚至可以取消滑動。

E.g.像

(BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event 
{ 
    if (... too diagonal to my taste) .. 
      return (NO); 
    return [super continueTrackingWithTouch:touch withEvent:event]; 
} 

其中,若所述開始點&目前現貨 '太對角線' 可能是因爲檢查一樣簡單太不ortogonal(例如DX = firstX - lastX,DY = firstY - lastY; LEN2 = DX * DX + DY * DY - 。這是隻允許相對於面積一些比= DX * DY

謝謝,

了Dw

+0

麻煩的是,該UISwipeGestureRecognizer本身取消跟蹤時,發現該手勢太我想完全相反這種方法重寫自動取消? – 2010-11-15 00:21:23

+0

否 - 由於[super ..]在上面仍會返回'NO'。然而,你可能會調皮 - 只是簡單地改變一下,總是返回YES並看看會發生什麼? – 2010-11-15 00:25:14

+0

仍然沒有好處。我正在嘗試一些替代方法,如使用UIScrollView代替手勢識別。這給我帶來了一些新的問題,這裏報道:http://stackoverflow.com/questions/4200563/loadhtmlstring-wont-fire-while-uiscrollview-is-滾動。行爲並不完全一樣,但兩者都代表了迄今爲止我還無法克服的一些挑戰。所以我必須繼續嘗試。無論如何,謝謝你的幫助,德克。 – 2010-11-17 01:09:00

相關問題