add overlay
This commit is contained in:
parent
9cb75817e5
commit
95d305254f
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user