本文实例为大家分享了swift版webview加载网页展示的具体代码,供大家参考,具体内容如下
比较简单,直接上代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
import UIKit import WebKit import SnapKit class CMWebVC: UIViewController , WKNavigationDelegate { var webUrl: String? var webView: WKWebView =WKWebView() var progressView:UIProgressView = UIProgressView() var closeBtn: UIButton! override func initVC() { webView.addObserver(self, forKeyPath: "estimatedProgress" , options: NSKeyValueObservingOptions. new , context:nil) webView.navigationDelegate =self } deinit { webView.removeObserver(self, forKeyPath: "estimatedProgress" ) webView.navigationDelegate =nil } override func viewDidLoad() { 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 // load url if webUrl !=nil { webView.load(URLRequest(url:URL(string: webUrl!)!)) } // shear self.showRightItem(image: "nav_share" ) { } } override func viewWillAppear(_ animated:Bool) { super .viewWillAppear(animated) self.closeButton() } override func viewWillDisappear(_ animated:Bool) { self.closeBtn.removeFromSuperview() } func closeButton() { if self.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) } } override func observeValue(forKeyPath keyPath:String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { // 加载进度 if keyPath == "estimatedProgress" { let newprogress = change?[.newKey]!as! Float let oldprogress = change?[.oldKey]as? Float ?? 0.0 //不要让进度条倒着走...有时候goback会出现这种情况 if newprogress < oldprogress { return } if newprogress == 1 { progressView.isHidden = true progressView.setProgress( 0 , animated: false ) } else { progressView.isHidden = false progressView.setProgress(newprogress, animated: true ) } } } func webView(_ webView:WKWebView, didFinish navigation: WKNavigation!) { progressView.isHidden = true progressView.setProgress( 0 , animated: false ) } func webView(_ webView:WKWebView, didFail navigation: WKNavigation!, withError error: Error) { progressView.isHidden = true progressView.setProgress( 0 , animated: false ) } override func navigateBack() { if webView.canGoBack { webView.goBack() } else { super .navigateBack() } } } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/tiantianios/article/details/78474778