iOS:webview轻扫手势

时间:2014-05-05 05:05:46

标签: ios objective-c uiwebview uiswipegesturerecognizer

我有2个UIWebView控件。使用这两个webview,我已经成功实现了滑动手势动画。

但问题是,当我点击下一个或上一个按钮时(哦,是的,我还有下一个,上一个,第一个和最后一个按钮来读书),滑动效果很好。

但是在webview上它很奇怪。发生以下情况:

  • 滑动不适用于webview。
  • 当我点击下一个或上一个按钮然后滑动webview时,在webview上滑动即可。

以下是我的代码段:

在viewDidLoad中:

  UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)];
[swipeRight setDirection:UISwipeGestureRecognizerDirectionLeft];
[webViewPage addGestureRecognizer:swipeRight];
[_webview2 addGestureRecognizer:swipeRight];


UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft:)];
[swipeLeft setDirection:UISwipeGestureRecognizerDirectionRight];
[webViewPage addGestureRecognizer:swipeLeft];
[_webview2 addGestureRecognizer:swipeLeft];

在UIWebView上启用滑动:

    -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
//    NSLog(@"shouldRecognizeSimultaneouslyWithGestureRecognizer");
    return YES;
}



 - (IBAction)btnPrevious_click:(id)sender {
   //some code

}

- (IBAction)btnNext_click:(id)sender {
    //some code
}

我哪里出错?

2 个答案:

答案 0 :(得分:1)

从您的代码中,您只需添加2个UISwipeGestureRecognizer只有一个UIWebView名称 _webview2 ,请根据您的要求进行更改。

答案 1 :(得分:0)

像提到的iPatel一样。每个webview都应该有自己的GestureRecognizers。所以,你应该总共有4个GestureRecognizer。

试试这个: -

UISwipeGestureRecognizer *swipeRight1 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)];
[swipeRight1 setDirection:UISwipeGestureRecognizerDirectionLeft];
UISwipeGestureRecognizer *swipeLeft1 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft:)];
[swipeLeft1 setDirection:UISwipeGestureRecognizerDirectionRight];
[_webview1 addGestureRecognizer:swipeRight1];
[_webview1 addGestureRecognizer:swipeLeft1];   

UISwipeGestureRecognizer *swipeRight2 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)];
[swipeRight2 setDirection:UISwipeGestureRecognizerDirectionLeft];
UISwipeGestureRecognizer *swipeLeft2 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft:)];
[swipeLeft2 setDirection:UISwipeGestureRecognizerDirectionRight];
[_webview2 addGestureRecognizer:swipeRight2];
[_webview2 addGestureRecognizer:swipeLeft2];