无法在 iOS 的 UIWebView 中滚动
Posted
技术标签:
【中文标题】无法在 iOS 的 UIWebView 中滚动【英文标题】:Cannot scroll in UIWebView in iOS 【发布时间】:2012-06-08 05:04:20 【问题描述】:我以编程方式创建了一个 web 视图,但无法在此视图中启用滚动。
如何启用滚动?
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0,40, 325, 1000)];
webView.contentMode = UIViewContentModeScaleAspectFit;
[webView setBackgroundColor:[UIColor clearColor]];
[webView loadhtmlString:html baseURL:nil];
[self.view insertSubview:webView atIndex:0];
提前致谢!
【问题讨论】:
嗯,如果您将内容设置为缩放和适合(例如“UIViewContentModeScaleAspectFit
”),整个页面不会适合屏幕而不滚动吗?
@MichaelDautermann ..我尝试禁用“UIViewContentModeScaleAspectFit”,但我仍然无法滚动。 webView 只是弹跳
@skokal01 这意味着所有内容都在屏幕上可见,因此没有什么可以滚动到
@Otium...我保证有很多内容。顺便说一句,我更改了代码以从界面生成器创建 UIWebView,现在我可以完美地滚动了。我想知道我的代码中遗漏了什么。
【参考方案1】:
要启用滚动,
webview.scrollView.scrollEnabled = TRUE;
而不是写这个,
webView.contentMode = UIViewContentModeScaleAspectFit;
写这个,
webview.scalesPageToFit = TRUE;
【讨论】:
@krunal...它没有用。现在我的 html 页面缩小到屏幕的 1/4 大小,我什至无法放大 :( 请看截图UIWebView Screenshot 您的网页视图大小不合适.. chk 那应该是webview.frame=CGRectMake(0, 0, 770, 960);
试试这个,webview.frame=CGRectMake(0, 0, 100, 100);
并删除这一行 webview.scalesPageToFit = TRUE;
& 然后告诉我会发生什么..
我认为你的意思是不是真的。这是目标c! :)【参考方案2】:
从 Interface Builder 中删除并通过代码添加对我来说确实如此。由于某种原因,在 IB 中它没有滚动。
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 64, 320, 50)];
[self.view addSubview: webView];
【讨论】:
【参考方案3】:这些是可能的解决方案。
i) 您的 webview 的大小可能比您预期的要大,或者您的内容小于 webview 的大小。
2) 实现以下方法。
func webViewDidFinishLoad(webView: UIWebView)
appDelegate.hideLoadingView()
let res: NSString = webView.stringByEvaluatingjavascriptFromString("document.body.offsetHeight;")!
let h: CGFloat = CGFloat(res.integerValue)
agreementContentView.scrollView.contentSize = CGSizeMake(webView.frame.size.width, h + 50); // Offset if required
【讨论】:
以上是关于无法在 iOS 的 UIWebView 中滚动的主要内容,如果未能解决你的问题,请参考以下文章