[英]UIWebView Scrolling
我在我的 UIWebView 中加载了一个 HTML 表单,碰巧我的 UIWebView 从视图的中间开始并延伸。 我必须从滚动锁定这个 webView 并将它放在滚动视图的顶部以允许滚动。 webView 不应在内部滚动。 我试过这个
[[webView.subviews objectAtIndex:0] setScrollEnabled:NO];
但是当我在其中加载一个点击了文本字段的表单时,我无法阻止 webView 在内部滚动。 当我加载纯文本时,我能够获得所需的行为。 我想阻止 webView 自动滚动并使用位于 webView 下方的 scrollView 自己处理滚动。 对于大多数人来说,我重新发明轮子可能没有意义,但要求就是这样。
有人可以建议该怎么做吗?
你可以试试,
for (id subview in webView.subviews)
if ([[subview class] isSubclassOfClass: [UIScrollView class]])
if([subview respondsToSelector:@selector(setScrollingEnabled:)]) [subview performSelector:@selector(setScrollingEnabled:) withObject:NO];
或者你需要停止 webview 的弹跳,你可以试试这个。
for (id subview in webView.subviews)
if ([[subview class] isSubclassOfClass: [UIScrollView class]])
((UIScrollView *)subview).bounces = NO;
希望这可以帮助。
尝试在 webview 加载后运行它(即在正确的委托方法中):
[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.overflow='hidden'"]
如果您有权访问 HTML,您也可以在 body 元素上设置正确的样式:
body { overflow: hidden; }
如果您执行其中任何一项操作,您需要确保 UIWebView 足够高以显示所有内容。 您可以通过运行它来获得高度(也在 webview 加载之后):
CGFloat height = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.