add overlay

This commit is contained in:
Xinlei(Ryan) Pan 2020-04-01 19:28:31 -04:00
parent 9cb75817e5
commit 95d305254f

View File

@ -17,6 +17,7 @@ import WebKit
return model as? WebViewModel return model as? WebViewModel
} }
var webView: WKWebView? var webView: WKWebView?
var overLayer = MVMCoreUICommonViewsUtility.commonView()
public let loadingSpinner = MFLoadingSpinner(frame: .zero) public let loadingSpinner = MFLoadingSpinner(frame: .zero)
var delegateObject: MVMCoreUIDelegateObject? var delegateObject: MVMCoreUIDelegateObject?
var webViewHeight: NSLayoutConstraint? var webViewHeight: NSLayoutConstraint?
@ -26,6 +27,7 @@ import WebKit
override open func setupView() { override open func setupView() {
super.setupView() super.setupView()
createWebView(messageHandler: mvmWebViewMessageHandler) createWebView(messageHandler: mvmWebViewMessageHandler)
setupOverLayer()
pinSpinnerView() pinSpinnerView()
//init height for loading spinner //init height for loading spinner
@ -69,6 +71,7 @@ import WebKit
} else { } else {
webView?.load(URLRequest(url: url)) webView?.load(URLRequest(url: url))
webViewHeight?.constant = 44 webViewHeight?.constant = 44
overLayer.isHidden = false
loadingSpinner.resumeSpinner() loadingSpinner.resumeSpinner()
} }
} else if let htmlString = webviewModel?.htmlString { } else if let htmlString = webviewModel?.htmlString {
@ -77,6 +80,7 @@ import WebKit
} else { } else {
webViewHeight?.constant = 44 webViewHeight?.constant = 44
webView?.loadHTMLString(htmlString, baseURL: nil) webView?.loadHTMLString(htmlString, baseURL: nil)
overLayer.isHidden = false
loadingSpinner.resumeSpinner() loadingSpinner.resumeSpinner()
} }
} }
@ -88,8 +92,6 @@ import WebKit
webView?.layer.borderWidth = 0.0 webView?.layer.borderWidth = 0.0
webView?.layer.borderColor = UIColor.clear.cgColor webView?.layer.borderColor = UIColor.clear.cgColor
} }
bringSubviewToFront(loadingSpinner)
} }
func pinSpinnerView() { func pinSpinnerView() {
@ -104,6 +106,12 @@ import WebKit
loadingSpinner.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true loadingSpinner.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true
loadingSpinner.resumeSpinner() loadingSpinner.resumeSpinner()
} }
func setupOverLayer() {
addSubview(overLayer)
overLayer.backgroundColor = .white
NSLayoutConstraint.constraintPinSubview(toSuperview: overLayer)
}
} }
@ -111,6 +119,7 @@ import WebKit
extension WebView : WKUIDelegate { extension WebView : WKUIDelegate {
public func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { public func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
// hide loading // hide loading
overLayer.isHidden = true
loadingSpinner.pause() loadingSpinner.pause()
//update webview's heigth when webview is ready //update webview's heigth when webview is ready