2012-06-25 107 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]; 

这应该为你做的伎俩。