这里总菜鸟。我试图弄清楚如何通过滑动实现从一个 UIWebview 到另一个 UIWebview 的转换,并且仍然能够在每个 webview 中滚动/缩放。
除非检测到滑动并且视图/内容的边界位于屏幕的相应边缘(如分页滚动视图),否则每个 web 视图都应正常响应所有触摸/手势。
我的内容是来自数据对象的 html 字符串。
任何提示将不胜感激。谢谢。
这里总菜鸟。我试图弄清楚如何通过滑动实现从一个 UIWebview 到另一个 UIWebview 的转换,并且仍然能够在每个 webview 中滚动/缩放。
除非检测到滑动并且视图/内容的边界位于屏幕的相应边缘(如分页滚动视图),否则每个 web 视图都应正常响应所有触摸/手势。
我的内容是来自数据对象的 html 字符串。
任何提示将不胜感激。谢谢。
看起来将 UIWebview 放在 UIScrollview 中在 iPhone 3.0 中工作正常 - 'Doh!!!
将 UIWebView 放在 ScrollView 中可能是有原因的,但同时支持 UIWebView 中的滑动和滚动并不是其中之一。UIWebView 本身就可以很好地处理页面上的滚动,并且拥有它的视图控制器可以通过执行以下操作来支持滑动以更改为其他控制器之类的东西:
1)在拥有 WebView 的 viewController 中实现 UIGestureRecognizerDelegate 方法:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gr shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGr
{
return YES;
}
这允许您在 webViewController 中实现的手势识别器也可以从 UIWebView 获取手势。否则 UIWebView 会消耗所有这些,并且不会将它们传递给您。
2)在页面上区分滑动和滚动。在您要添加到 UIWebView 的实际手势识别器上,将称为“滑动”所需的触摸次数设置为 2 或 3。这允许一个手指在页面上滚动,并且仅在 2 或 3 个手指时返回 SwipeGesture被使用。这样做:
UISwipeGestureRecognizer *swipeGR;
swipeGR = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeLeft)] autorelease];
swipeGR.direction = UISwipeGestureRecognizerDirectionLeft;
swipeGR.delegate = self;
swipeGR.numberOfTouchesRequired = 2;
[myWebView addGestureRecognizer:swipeGR];