在UIWebview上处理滑动手势

时间:2013-09-10 05:20:03

标签: iphone

我想在两个单独的UIwebview上加载gmail和yahoo,并在这两个视图之间进行平移/滑动。但是滚动/平移无效,因为Gmail和Yahoo会在浏览器中处理滑动手势以执行自己的功能。就像在Gmail上滑动“存档”一样。对于雅虎,在滑动“删除”,“标记收藏”等是显示的功能。我能够成功

如果我的主控制器可以接收滑动事件,请告诉我,以便我可以在这两个Web视图之间滑动/平移/滚动。我的应用程序也应该支持App store指南。

此致 普拉萨德

2 个答案:

答案 0 :(得分:1)

以下解决方案适用于这种情况 1.带上UIView
2.将较小的Webview作为子视图添加到UIview中 3.向UIView添加滑动手势识别器。
现在,在View区域上进行平移将解决问题,它也将支持AppStore指南行。

您可以将显示箭头的图像滑动/平移。

答案 1 :(得分:0)

您可以在主控制器中接收滑动手势,然后根据需要通过javasacript将它们传递到uiwebviews中。这是一个例子:

    UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self  action:@selector(swipeRightAction:)];
    swipeRight.direction = UISwipeGestureRecognizerDirectionRight;
    swipeRight.delegate = self;

    swipeRight.numberOfTouchesRequired = 1;
    swipeRight.direction = UISwipeGestureRecognizerDirectionRight;
    swipeRight.delaysTouchesBegan = YES;
    [webView addGestureRecognizer:swipeRight];

则...

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

- (void)swipeRightAction:(id)ignored
{

    // Send javascript into web view
[self.webView stringByEvaluatingJavaScriptFromString:@"alert('Swipe right');"];


    //[webView goBack]; // or just navigate back in web view
}