如何在UIWebView中替换SwipeGestureRecognizer操作

时间:2012-05-16 11:55:06

标签: iphone ios ipad uiwebview uigesturerecognizer

我试图在一组5个UIWebViews中呈现本地html5内容。 这个想法是用户会滑动到4方向,所以我得到5个禁用弹跳的UIWebViews:

leftWebView.scrollView.bounces = NO;
middleWebView.scrollView.bounces = NO;
rightWebView.scrollView.bounces = NO;
upWebView.scrollView.bounces = NO;
downWebView.scrollView.bounces = NO;

我们假设网页视图中无法滚动,因为显示的html页面小于iPad屏幕。

加载这些网页视图,以便通过将其中心移动到平滑状态来动画转换。

那么有没有办法更改UIWebView中手势识别器执行的滑动操作?

我尝试将4个SwipeGesturesRecognizers(每个方向一个)直接放在webViews上,但出于某种原因,当我用以下参数交换参考时,手势识别器会松散其WebView的跟踪:

UIWebView *tmp = leftWebView;
leftWebView = middleWebView;
middleWebView = rightWebView;
rightWebView = tmp;

我尝试在窗口顶部的UIView上使用4个SwipeGesturesRecognizers(每个方向一个),但此视图现在阻止了点击,因此用户无法再与可点击元素进行交互。

1 个答案:

答案 0 :(得分:1)

您可以将自定义UISwipeGestureRecognizer添加到您的webView ..并禁用webView中的滚动

UIScrollView *scroll = [[self.webView subviews] lastObject];

if([scroll isKindOfClass:[UIScrollView class]])
{
    scroll = (UIScrollView*)scroll;
    [scroll setScrollEnabled:NO];
}