UIScrollview中的UIWebview将垂直滚动事件发送到scrollview

时间:2013-07-29 10:03:57

标签: ios objective-c uiwebview uiscrollview

所以我有一个只能水平滚动的UIWebView,它的UIScrollView只能垂直滚动。我几乎成功实现了这个目标,但我有一个小问题。

UIWebiew的滚动内容高度设置为webviews框架的高度,因此它不会垂直滚动,但即使是这种情况,它似乎仍然消耗垂直滚动事件(有时),因为我可以看到侧滚动条显示,但它不会滚动(并且不会滚动包含webview的滚动视图)。

它必须是这样的,因为有些元素需要与webview垂直滚动,而不是水平滚动(想想safari app如何使用webview滚动地址栏)

有谁知道我将如何通过垂直滚动事件但保留UIWebView的水平滚动事件?

我看了this answer,但它并不是我想要的

更新

所以通常在我问这个问题之后我会在另一个问题上找到一个合适的答案......(现在已经搜索了几个小时)this answer应该为我做伎俩,生病了,报告回来

2 个答案:

答案 0 :(得分:0)

只需设置

scrollView.alwaysBounceVertical = NO;
scrollView.contentSize = CGSizeMake(
    scrollView.frame.size.width, scrollView.contentSize.height);
scrollView.showsVerticalScrollIndicator = NO;

编辑: 似乎不起作用。太糟糕了..

尝试实施

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

..在您的视图中包含scrollView和webView,甚至是scrollView本身(包含webView)。

答案 1 :(得分:0)

所以解决方案我发现我在问题中发布了大部分内容,它完全符合我的需要,但由于某些原因,在网页加载后,它滚动标题栏显示只是网页,这不是结束世界但它不漂亮。似乎事件在webViewDidFinishLoad:之后发生,所以我不能重新将它重新定位到顶部。我会继续修补,也许我可以找出它为什么这样做。