IOS学习日记之UIView与视图(八)UIActivityIndicatorView、UIProgressView

398 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第29天,点击查看活动详情

大家好,我是小黑,一个还没秃头的程序员~~~

大家好,今天介绍的是活动指示器UIActivityIndicatorView、进度条UIProgressView,两者都可以表示为任务正在进行中,效果如下:

image.png

话不多说,正文开始:

(一)UIActivityIndicatorView

UIActivityIndicatorView是显示任务正在进行的视图。

你可以通过调用startAnimating()和stopAnimating()方法来控制活动指示器何时动画。要在动画停止时自动隐藏活动指示器,请将hidesWhenStopped属性设置为true。 你可以使用color属性设置活动指示器的颜色。

UIActivityIndicatorView的基本属性如下:

属性说明
style活动指示器的基本外观
color活动指示器的颜色

UIActivityIndicatorView的函数如下:

  1. startAnimating():启动动画
  2. stopAnimating():停止动画
  3. isAnimating:表示活动指示器当前是否正在运行它的动画
  4. hidesWhenStopped:控制动画停止时是否隐藏接收器

下面是一个简单的任务进行中展示指示器的例子:

  let btnLoading = UIButton(type: .system)
        btnLoading.frame=CGRect(x: 30, y: titleBarHeight+300, width: 150, height: 30)
        btnLoading.setTitle("测试加载活动指示器", for: .normal)
        btnLoading.addTarget(self, action: #selector(showLoading), for: .touchUpInside)
        self.scrollView.addSubview(btnLoading)
        
        loadingView = UIActivityIndicatorView(style: .medium)
        loadingView.frame.origin=CGPoint(x: 30+btnLoading.frame.width/2, y: titleBarHeight+350)
        loadingView.hidesWhenStopped=true
        self.scrollView.addSubview(loadingView)
 ...
     @objc func showLoading(){
        if loadingView.isAnimating {
            loadingView.stopAnimating()
        }else{
            loadingView.startAnimating()
        }
    }

(二)UIProgressView

UIProgressView是描述任务随时间变化而变化的进度的视图

UIProgressView类提供了一些属性,用于管理进度条的样式,以及获取和设置与任务进度相关的值。

UIProgressView的基本属性如下:

属性说明
progress接收方显示的当前进度
observedProgress用于更新进度视图的进度对象
progressViewStyle接收端当前的图形样式
progressTintColor进度条被填充部分所显示的颜色
progressImage进度条被填充部分的图像
trackTintColor进度条未填充部分所显示的颜色
trackImage用于轨道未填充部分的图像

下面是一个简单的进度条的例子,这里使用本地定时器模拟进度变化:

        let btnProgress = UIButton(type: .system)
        btnProgress.frame=CGRect(x: btnLoading.frame.width+30, y: titleBarHeight+300, width: 150, height: 30)
        btnProgress.setTitle("测试进度条", for: .normal)
        btnProgress.addTarget(self, action: #selector(startProgress), for: .touchUpInside)
        self.scrollView.addSubview(btnProgress)
        
        progressView = UIProgressView(progressViewStyle: .default)
        progressView.frame.origin=CGPoint(x: btnProgress.frame.width+30, y: titleBarHeight+350)
        
        self.scrollView.addSubview(progressView)
        
        ...
         @objc func startProgress(){
        
        self.timer=Timer.init(timeInterval: 1, repeats: true, block: { (Timer) in
                                self.progressView.progress+=0.1
                                NSLog("进度条当前进度:\(self.progressView.progress)")
                                if self.progressView.progress==1
                                {
                                    self.timer.invalidate()
                                    
                                }        })
        RunLoop.current.add(timer, forMode: .default)
        self.timer.fire()
    }

以上便是IOS中关于活动指示器UIActivityIndicatorView、进度条UIProgressView的使用,今天的UIView学习分享就到这里,后面我会持续输出iOS开发笔记,感谢大家的阅读!共同努力!大家晚安!