swift版webview加载网页进度条效果
本文实例为大家分享了swift版webview加载网页展示的具体代码,供大家参考,具体内容如下
比较简单,直接上代码
importUIKit importWebKit importSnapKit classCMWebVC: UIViewController ,WKNavigationDelegate{ varwebUrl:String? varwebView:WKWebView=WKWebView() varprogressView:UIProgressView=UIProgressView() varcloseBtn:UIButton! overridefuncinitVC(){ webView.addObserver(self,forKeyPath:"estimatedProgress",options:NSKeyValueObservingOptions.new,context:nil) webView.navigationDelegate=self } deinit{ webView.removeObserver(self,forKeyPath:"estimatedProgress") webView.navigationDelegate=nil } overridefuncviewDidLoad(){ super.viewDidLoad() //webview view.addSubview(webView) webView.snp.makeConstraints{(make)in make.width.height.equalToSuperview() } //progressview view.addSubview(progressView) progressView.snp.makeConstraints{(make)in make.width.equalToSuperview() make.height.equalTo(3) make.top.equalToSuperview() } progressView.tintColor=UIColor.ColorBgTheme() progressView.isHidden=true //loadurl ifwebUrl!=nil{ webView.load(URLRequest(url:URL(string:webUrl!)!)) } //shear self.showRightItem(image:"nav_share"){ } } overridefuncviewWillAppear(_animated:Bool){ super.viewWillAppear(animated) self.closeButton() } overridefuncviewWillDisappear(_animated:Bool){ self.closeBtn.removeFromSuperview() } funccloseButton(){ ifself.closeBtn==nil{ self.closeBtn=UIButton(frame:CGRect(x:44,y:0,width:44,height:44)) self.closeBtn.setTitle("关闭",for:.normal) self.closeBtn.setTitleColor(UIColor.black,for:.normal) self.closeBtn.addAction({(button)in self.navigationController!.popViewController(animated:true) }) self.navigationController?.navigationBar.addSubview(self.closeBtn) } } overridefuncobserveValue(forKeyPathkeyPath:String?,ofobject:Any?,change:[NSKeyValueChangeKey:Any]?,context:UnsafeMutableRawPointer?){ //加载进度 ifkeyPath=="estimatedProgress"{ letnewprogress=change?[.newKey]!as!Float letoldprogress=change?[.oldKey]as?Float??0.0 //不要让进度条倒着走...有时候goback会出现这种情况 ifnewprogress以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。