如何在目标c中配置Web视图滚动?

时间:2019-01-21 08:19:21

标签: ios webview

我添加一个UIWebView作为view的子视图。即使UIWebView的内容可以不滚动显示,该视图也始终滚动。

  1. 在内容不存在的情况下是否可以不滚动UIWebView 显示在屏幕上?


另一个问题是,当我滚动UIWebView时,背景是深灰色的

  1. 可以更改此颜色吗?

2 个答案:

答案 0 :(得分:1)

禁用滚动

首次加载屏幕时,请在viewDidLoad中输入:

yourWebView.scrollView.bounces         = false
yourWebView.scrollView.isScrollEnabled = false

并实现UIWebViewDelegate方法以在内容完全加载时启用滚动:

func webViewDidFinishLoad(_ webView: UIWebView)
{
    yourWebView.scrollView.bounces         = true
    yourWebView.scrollView.isScrollEnabled = true
}

删除背景色

您需要将网络视图的opaque属性设置为false:

yourWebView.backgroundColor = UIColor.clear
yourWebView.isOpaque        = false

答案 1 :(得分:0)

使用以下代码,在webviewDidFinishLoading中获取Webview内容的高度,然后在内容高度不大于Webview高度的情况下设置该高度。在下面的代码中,我假设从超级视图来看,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

    }
}