我有一个UIWebView(已完全包含html的大小),我想将此Web视图与其他一些视图一起放入UIScrollView。
如果我在网络视图上设置userInteractionEnabled = NO
...除了我无法点击网络视图中的链接外,它的效果非常好。但是,如果我在Web视图上留下userInteractionEnabled = YES
...那么,如果用户在Web视图中滑动而不是滚动UIScrollView,它会在Web视图内部(在滚动视图内)反弹文本。 / p>
对此有何帮助?
谢谢!
答案 0 :(得分:8)
将一堆其他答案拼凑在一起......这对我来说非常有用:
if ([_webView respondsToSelector:@selector(scrollView)]) {
_webView.scrollView.scrollEnabled = NO; // available starting in iOS 5
} else {
for (id subview in _webView.subviews)
if ([[subview class] isSubclassOfClass: [UIScrollView class]])
((UIScrollView *)subview).scrollEnabled = NO;
}
答案 1 :(得分:0)
是的,现在会发生这种情况,就像另一个滚动视图上的滚动视图一样,滚动子滚动视图时无法滚动父滚动视图。我不认为你想要的是什么。因为如果网页内容增加,那么子webview肯定会在...内滚动。
答案 2 :(得分:0)
要关闭webView
中的滚动,您需要执行此操作 -
for(id subview in self.scrollView.subviews)
{
if([[subview class] isSubclassOfClass:[UIWebView class]])
((UIScrollView *)subview).scrolling = NO;
}
这里发生的事情是我们正在遍历您的主UIScrollView
内的所有子视图。关闭UIWebView
视图的滚动。这是可能的,因为UIWebView
是从UIScrollView
继承的。
希望这有帮助。
更新:更正。正如@lxt指出的那样 - UIWebView不会从UIScrollView继承。它包含一个滚动视图,但Web视图本身只是一个UIView子类。
答案 3 :(得分:0)
我的故事板视图中有一个WebView“正文”。
为了防止滚动“正文”(WebView),这非常有效:
- (void)viewDidLoad{
...
body.scrollView.scrollEnabled=NO;
}
如果文字太大,它的行为就像HTML5 / CSS3的“溢出:隐藏”。