持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第29天,点击查看活动详情
大家好,我是小黑,一个还没秃头的程序员~~~
大家好,今天介绍的是活动指示器UIActivityIndicatorView、进度条UIProgressView,两者都可以表示为任务正在进行中,效果如下:
话不多说,正文开始:
(一)UIActivityIndicatorView
UIActivityIndicatorView是显示任务正在进行的视图。
你可以通过调用startAnimating()和stopAnimating()方法来控制活动指示器何时动画。要在动画停止时自动隐藏活动指示器,请将hidesWhenStopped属性设置为true。 你可以使用color属性设置活动指示器的颜色。
UIActivityIndicatorView的基本属性如下:
| 属性 | 说明 |
|---|---|
| style | 活动指示器的基本外观 |
| color | 活动指示器的颜色 |
UIActivityIndicatorView的函数如下:
- startAnimating():启动动画
- stopAnimating():停止动画
- isAnimating:表示活动指示器当前是否正在运行它的动画
- 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开发笔记,感谢大家的阅读!共同努力!大家晚安!