2012-06-25 106 views
3

我是新來iPhone開發商,檢測輕掃手勢的UIWebView

我做了EPUB閱讀器和加載EPUB的每一頁我webview

我想要什麼,當用戶執行right swipe gesture第二次的話,我要導航到新的頁面,我不想做任何事情,當用戶執行right swipe gesture首次。

UISwipeGestureRecognizer *swipeRight

有什麼方法類似,

if(swipeRight.touch.count > 2) 
{ 
    // do this 
} 

任何幫助將appriciated。

在此先感謝!

編輯

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ 
    float scrollViewHeight = scrollView.frame.size.height; 
    float scrollContentSizeHeight = scrollView.contentSize.height; 
    float scrollOffset = scrollView.contentOffset.y; 

    if (scrollOffset == 0) 
    { 
     swipeUp = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeftAction:)]; 
     swipeUp.direction = UISwipeGestureRecognizerDirectionUp; 
     swipeUp.numberOfTouchesRequired=2; 
     swipeUp.delegate = (id<UIGestureRecognizerDelegate>)self; 
     swipeUp.cancelsTouchesInView=YES; 
     [_webview addGestureRecognizer:swipeUp]; 
    } 
    else if (scrollOffset + scrollViewHeight == scrollContentSizeHeight) 
    { 
     swipeDown = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRightAction:)]; 
     swipeDown.direction = UISwipeGestureRecognizerDirectionDown; 
     swipeDown.numberOfTouchesRequired=2; 
     swipeDown.delegate = (id<UIGestureRecognizerDelegate>)self; 
     swipeDown.cancelsTouchesInView=YES; 
     [_webview addGestureRecognizer:swipeDown]; 

    } 
+0

如果網頁視圖中滾動視圖然後yourcrollview.canCancelTouches = NO;和webView.exclusiveTouches = YES。 –

回答

4

只是附加UIGestureRecognizer子類這一觀點並按住通話...

UISwipeGestureRecognizer* rightSwipeRecognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(someAction)]; 
rightSwipeRecognizer.numberOfTouchesRequired = 2; 
rightSwipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight; 
rightSwipeRecognizer.cancelsTouchesInView = YES; 
[self.webView addGestureRecognizer:rightSwipeRecognizer]; // add in your webviewrightSwipeRecognizer 
+1

我想你的ANS但沒有工作,看到我的問題編輯。 – Krunal

+0

[Rü在webView的一次 –

+0

越來越rightSwipeRecognizer看到我的編輯我沒有得到的姿態的。 – Krunal

1
Try like below it will help you 
UISwipeGestureRecognizer *rightRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipeHandle:)]; 
    rightRecognizer.direction = UISwipeGestureRecognizerDirectionRight; 
    rightRecognizer.numberOfTouchesRequired = 2; 
    [self.view addGestureRecognizer:rightRecognizer]; 
    [rightRecognizer release]; 
1

我不認爲滑動手勢提供那種你針對的是行爲的支持,但你可以很容易地通過執行以下操作完成它:

  1. 在第一滑動

    ,設置一個標誌並啓動定時器;其餘的什麼都不做;

  2. on the second swipe,

    a。如果定時器已經燒製(燒製時,定時器復位標誌),做爲每點1

    灣定時器沒有被觸發(該標誌仍然被設置),然後你做出動作並取消定時器。

您可能會想到定義UISwipeGestureRecognizer的子類來封裝所有這些行爲。

6

你可以告訴一個UIWebView的UIScrollView的,當你自己UISwipeGestureRecognizer失敗了UIPanGestureRecognizer應該只火。

這是你如何做到這一點:

UISwipeGestureRecognizer *rightSwipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeGesture:)]; 
UISwipeGestureRecognizer *leftSwipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeGesture:)]; 
rightSwipeGesture.direction = UISwipeGestureRecognizerDirectionRight; 
leftSwipeGesture.direction = UISwipeGestureRecognizerDirectionLeft; 
[self.view addGestureRecognizer:rightSwipeGesture]; 
[self.view addGestureRecognizer:leftSwipeGesture]; 

[_webView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:rightSwipeGesture]; 
[_webView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:leftSwipeGesture]; 

這應該爲你做的伎倆。