最简单的实现ios进度条,可以是一个模拟展示,而不是真实的加载网页进度,
源码下载:https://github.com/feifeiios/WebviewTest/tree/master
完成如下图展示:
代码:
在网页加载界面,添加UIWebView控件和UIProgress 控件,界面跳转,传递网页链接字符串,
代码
@IBOutlet weak var webview: UIWebView!
@IBOutlet weak var urlLable: UILabel!//展示传递的网页链接
var urlstring = ""
@IBOutlet weak var progress: UIProgressView!
界面加载网页的代码:
override func viewDidLoad() {
super.viewDidLoad()
urlLable.text = urlstring
webview.delegate = self
let request = NSURLRequest.init(URL: NSURL.init(string: urlstring)!)
webview.loadRequest(request)
webview.backgroundColor = UIColor.grayColor()
}
代理:
func webViewDidStartLoad(webView: UIWebView) {
progress.hidden = false//展示
progress.setProgress(1.0, animated: true)//设置加载到1.0的动画
print("start")
}
func webViewDidFinishLoad(webView: UIWebView) {
progress.setProgress(0.0, animated: true)//恢复到初始值
print("finished")
progress.hidden = true//隐藏
self.title = webview.stringByEvaluatingJavaScriptFromString("document.title")//获取webview的标题
}
func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
print("failed")
let random = arc4random() % 10
let pgs = Float(random)/10.0
progress.setProgress(pgs, animated: true)
// progress.hidden = true
}
网页加载开始、结束使用 public func setProgress(progress: Float, animated: Bool)展示进度,如果网页加载失败,先使用arc4random找一个随机数,1-9即可,除以10.0,即可得到一个0~1的浮点型随机数值,用于设置进度条,即可。