网页加载进度条

在iOS中大量的app中都会应用到网页加载,在网页加载显示的过程中显示网页是否加载完成.当然,我们平时都是利用使用"SVProgressHUD"框架显示加载进程,很是快捷方便.

但是我们在一些app中,看到有利用UIProgressView显示加载进度.这些进度条通常是粘在导航栏的下方

navigationController?.view.insertSubview(progress, belowSubview: (navigationController?.navigationBar)!)

现在网页加载通常不是像下载文件一样,通过比较本地文件和服务器上文件的大小,算出进度条的比例,而是先加载到某个地方,再根据获取到的数据多少继续加载,因此需要创建一个计时器

timer = NSTimer.scheduledTimerWithTimeInterval(1/60, target: self, selector: "valueChange", userInfo: nil , repeats: true)

改变进度条的值,先直接加载到95%,然后根据情况继续加载

// 改变进度条状态
    func valueChange(){
        
        if isAnim {
            progress += 0.05
            if progress >= 0.95{
                progress = 0.95
            }
        }else{
            if progress == 1{
                // 真的加载完成
                self.hidden = true
                timer?.invalidate()
            }else{
                // 从0.95的地方继续加载一会儿
                progress += 0.05
            }
        }
    }

在需要的时候启动计时器,在不需要的时候将上面的isAnim属性变为false,此时进度条就会停止动画

你可能感兴趣的:(网页加载进度条)