将滑动手势放在 UIWebView 上以获取 IOS 中的滚动方向

Put Swipe Gesture over UIWebView to Get Scroll Direction in IOS

我想获取webView中的滚动方向。我阅读了有关获取滚动方向的代码 here.

-(void)userDidScrollWebView:(id)scrollPoint{
    // NSLog(@"scrolled:::");

    NSString *x1 = [webView stringByEvaluatingJavaScriptFromString: @"scrollX"];


    NSString *y1 = [webView stringByEvaluatingJavaScriptFromString: @"scrollY"];


    NSLog(@"scroll x=%@ y=%@", x1,y1);      

    if ([y1 isEqualToString: @"0"]) {
        NSLog(@"RELAOD ME");
    }   
}

我有 2 个问题:-

  1. 关于这段代码,我不知道在我的代码中的什么地方调用 userDidScrollWebView 方法,以便我得到关于滚动的定期更新。

  2. 另一种方法,我想可能是我可以在 Web 视图上放置滑动手势,但这不起作用。

这就是我在 UIWebView 中实现滑动手势的方式。

  1. <UIGestureRecognizerDelegate> 协议添加到 ViewController.h
  2. ViewDidLoad方法中添加如下代码:

    UISwipeGestureRecognizer * swipeGestureDown = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeDown)]; swipeGestureDown.numberOfTouchesRequired = 1; swipeGestureDown.direction = UISwipeGestureRecognizerDirectionDown; swipeGestureDown.delegate = self; [self.webView addGestureRecognizer:swipeGestureDown];

  3. ViewController.m中添加委托方法:

    -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return YES; }

  4. -(void)swipeDown { NSLog(@"swipe down in webView"); }

同样,您可以添加另一个向上滑动手势。