最简单的实现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的浮点型随机数值,用于设置进度条,即可。