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
}
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