在使用Swift在WKWebView中呈现数据之前显示自定义加载器,可以通过以下步骤实现:
以下是一个示例代码:
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
var loadingView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
// 创建自定义加载器视图
loadingView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
loadingView.center = view.center
loadingView.backgroundColor = UIColor.lightGray
loadingView.layer.cornerRadius = 10
let activityIndicator = UIActivityIndicatorView(style: .whiteLarge)
activityIndicator.center = CGPoint(x: loadingView.bounds.width / 2, y: loadingView.bounds.height / 2)
activityIndicator.startAnimating()
loadingView.addSubview(activityIndicator)
// 创建WKWebView并设置代理
webView = WKWebView(frame: view.bounds)
webView.navigationDelegate = self
// 将WKWebView添加到视图层级中
view.addSubview(webView)
// 加载网页
let url = URL(string: "https://www.example.com")
let request = URLRequest(url: url!)
webView.load(request)
}
// WKNavigationDelegate方法:开始加载网页
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
// 显示自定义加载器视图
view.addSubview(loadingView)
}
// WKNavigationDelegate方法:网页加载完成
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
// 隐藏自定义加载器视图
loadingView.removeFromSuperview()
}
// WKNavigationDelegate方法:网页加载失败
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
// 隐藏自定义加载器视图
loadingView.removeFromSuperview()
// 处理加载失败的情况
}
}
这样,在使用Swift编写的iOS应用中,使用WKWebView加载网页之前会显示自定义的加载器视图,增强用户体验。
领取专属 10元无门槛券
手把手带您无忧上云