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方法吗?