Ios 如何在objective c中配置web视图滚动?
我添加了一个Ios 如何在objective c中配置web视图滚动?,ios,webview,Ios,Webview,我添加了一个UIWebView作为视图的子视图。即使UIWebView的内容可以不滚动显示,此视图也始终具有滚动。 当内容未显示时,是否可以不滚动UIWebView 显示在屏幕上 另一个问题是,当我滚动UIWebView时,背景是深灰色的 可以改变这个颜色吗 禁用滚动 首次加载屏幕时,在viewDidLoad中写入: yourWebView.scrollView.bounces = false yourWebView.scrollView.isScrollEnabled =
UIWebView
作为视图的子视图。即使UIWebView
的内容可以不滚动显示,此视图也始终具有滚动。
当内容未显示时,是否可以不滚动UIWebView
显示在屏幕上
另一个问题是,当我滚动UIWebView
时,背景是深灰色的
可以改变这个颜色吗
禁用滚动
首次加载屏幕时,在viewDidLoad
中写入:
yourWebView.scrollView.bounces = false
yourWebView.scrollView.isScrollEnabled = false
并实现在内容完全加载时启用滚动的方法:
func webViewDidFinishLoad(_ webView: UIWebView)
{
yourWebView.scrollView.bounces = true
yourWebView.scrollView.isScrollEnabled = true
}
删除背景色
您需要将web视图的不透明
属性设置为false:
yourWebView.backgroundColor = UIColor.clear
yourWebView.isOpaque = false
使用以下代码,在webviewDidFinishLoading中获取webview内容的高度,如果内容高度不大于您的webview高度,则设置此高度。在下面的代码中,我假设superview的webview顶部和底部约束为零
class StaticContentVC: UIViewController , UIWebViewDelegate {
@IBOutlet weak var webView : UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
webView.delegate = self
webView.scrollView.isScrollEnabled = false
webView.backgroundColor = UIColor.white
self.webView.loadRequest(URLRequest(url: YourcontentUrl as URL))
}
public func webViewDidFinishLoad(_ webView: UIWebView){
let newSize = Float(webView.stringByEvaluatingJavaScript(from: "document.documentElement.scrollHeight") ?? "") ?? 0.0
if CGFloat(newSize) > UIScreen.main.bounds.size.height {
webView.scrollView.isScrollEnabled = true
}else {
webView.frame = CGRect(x: webView.frame.origin.x, y: webView.frame.origin.y, width: webView.frame.size.width, height: CGFloat(newSize))
webView.scrollView.isScrollEnabled = false
}
}
谢谢删除背景是可以的,但是当我在webViewDidFinish中设置滚动启用,并且内容大于屏幕大小时,我无法滚动。@FattanehTalebi:您是否按照回答中所述设置滚动启用属性?您是否设置了yourWebView.delegate=self
?您是否在代码或情节提要中的任何位置禁用了touch?你能在这里加上你的didfish方法吗?