From 95d305254f937995d67b1bf3faf81910e7be3e71 Mon Sep 17 00:00:00 2001 From: "Xinlei(Ryan) Pan" Date: Wed, 1 Apr 2020 19:28:31 -0400 Subject: [PATCH] add overlay --- MVMCoreUI/Atomic/Atoms/Views/WebView.swift | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/MVMCoreUI/Atomic/Atoms/Views/WebView.swift b/MVMCoreUI/Atomic/Atoms/Views/WebView.swift index 72c8c33a..dd8b9776 100644 --- a/MVMCoreUI/Atomic/Atoms/Views/WebView.swift +++ b/MVMCoreUI/Atomic/Atoms/Views/WebView.swift @@ -17,6 +17,7 @@ import WebKit return model as? WebViewModel } var webView: WKWebView? + var overLayer = MVMCoreUICommonViewsUtility.commonView() public let loadingSpinner = MFLoadingSpinner(frame: .zero) var delegateObject: MVMCoreUIDelegateObject? var webViewHeight: NSLayoutConstraint? @@ -26,6 +27,7 @@ import WebKit override open func setupView() { super.setupView() createWebView(messageHandler: mvmWebViewMessageHandler) + setupOverLayer() pinSpinnerView() //init height for loading spinner @@ -69,6 +71,7 @@ import WebKit } else { webView?.load(URLRequest(url: url)) webViewHeight?.constant = 44 + overLayer.isHidden = false loadingSpinner.resumeSpinner() } } else if let htmlString = webviewModel?.htmlString { @@ -77,6 +80,7 @@ import WebKit } else { webViewHeight?.constant = 44 webView?.loadHTMLString(htmlString, baseURL: nil) + overLayer.isHidden = false loadingSpinner.resumeSpinner() } } @@ -88,8 +92,6 @@ import WebKit webView?.layer.borderWidth = 0.0 webView?.layer.borderColor = UIColor.clear.cgColor } - - bringSubviewToFront(loadingSpinner) } func pinSpinnerView() { @@ -104,6 +106,12 @@ import WebKit loadingSpinner.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true loadingSpinner.resumeSpinner() } + + func setupOverLayer() { + addSubview(overLayer) + overLayer.backgroundColor = .white + NSLayoutConstraint.constraintPinSubview(toSuperview: overLayer) + } } @@ -111,6 +119,7 @@ import WebKit extension WebView : WKUIDelegate { public func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { // hide loading + overLayer.isHidden = true loadingSpinner.pause() //update webview's heigth when webview is ready