Swift - ProgressView

Swift - ProgressView 首页 / iOS入门教程 / Swift - ProgressView

在iOS应用程序中,ProgressView用于显示任务随时间的进度。 ProgressView是UIProgressView的实例,该实例继承了UIView类。

class UIProgressView : UIView

ProgressView显示进度条,在这里无涯教程可以使用UIProgressView类的方法和属性来管理其样式。无涯教程可以获取并设置固定在任务进度上的值。

无涯教程网

属性和方法

SNProperty or methodDescription
1var progress: Float表示进度条显示的当前进度。
2func setProgress(Float, animated: Bool)此方法用于设置进度条的进度。无涯教程可以选择传递一个布尔值来确定动画是打开还是关闭。
3var observedProgress: Progress?它是进度对象,用于更新进度视图。
4var progressViewStyle: UIProgressView.Style它代表进度视图的当前图形样式。
5var progressTintColor: UIColor?它是进度栏已填充或完成的部分显示的颜色。
6var progressImage: UIImage?通过使用此属性,无涯教程可以为进度条的已填充部分设置图像。
7var trackTintColor: UIColor?它是进度条部分显示的颜色。
8var trackImage: UIImage?对于进度条中未填充的部分,显示的图像。
将ProgressView添加到Interface Builder
  • 要将ProgressView添加到Storyboard,在对象库中搜索UIProgressView并将结果拖到Storyboard,如下图所示。
iOS ProgressView
  • 为进度视图定义自动布局规则,以控制其在不同屏幕尺寸下的位置和大小。
  • 设置UIProgressView的适当属性,以控制进度视图随时间的进度。

例子

在此示例中,无涯教程将模拟注册示例,在该示例中,无涯教程将通过填写名称,电子邮件ID和密码来提示用户在应用程序中注册。当用户点击“提交”按钮时,无涯教程将向用户显示一个进度条,表明该用户数据正在保存在数据库中。如下图所示。

iOS ProgressView

现在,让无涯教程添加进度视图和一个标签以指示界面的进度,如下图所示。

iOS ProgressView

当用户点击“提交”按钮时,无涯教程将执行一个计时器来表示进度视图的进度。

ViewController.swift

import UIKit


class ViewController: UIViewController {


    @IBOutlet weak var nameTF: UITextField!
    
    
    @IBOutlet weak var emailTF: UITextField!
    
    @IBOutlet weak var passwordTF: UITextField!
    
    
    @IBOutlet weak var CFPasswordTF: UITextField!
    
    @IBOutlet weak var progressView: UIProgressView!
    
    @IBOutlet weak var msgLbl: UILabel!


    @IBOutlet weak var sbmtBtn: UIButton!
    
    let progress = Progress(totalUnitCount: 4)
    
    var ratio: Float?
    
    override func viewDidLoad() {
        super.viewDidLoad()
       //加载视图后进行任何其他设置。
        progressView.isHidden = true
        ratio = 0
        progressView.progress = ratio!
        msgLbl.isHidden = true
        progressView.layer.cornerRadius = 10
        sbmtBtn.layer.cornerRadius = 10
    }
    
    @IBAction func clickedSubmitBtn(_ sender: Any) {
        if(nameTF.text != "" && emailTF.text != "" && passwordTF.text != ""){
        sbmtBtn.isHidden = true
        msgLbl.isHidden = false
        progressView.isHidden = false
            Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { (timer) in
                guard self.progress.isFinished == false else{
                    timer.invalidate()
                    self.msgLbl.text = "Data Saved"
                    return
                }
                self.progress.completedUnitCount += 1
                let progrsssFloat = Float(self.progress.fractionCompleted)
                self.progressView.setProgress(progrsssFloat, animated: true)
                
            }
        }
    }
}

输出:

iOS ProgressView

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

技术管理实战36讲 -〔刘建国〕

数据分析实战45讲 -〔陈旸〕

软件工程之美 -〔宝玉〕

黄勇的OKR实战笔记 -〔黄勇〕

Swift核心技术与实战 -〔张杰〕

Netty源码剖析与实战 -〔傅健〕

图解 Google V8 -〔李兵〕

技术管理案例课 -〔许健〕

说透数字化转型 -〔付晓岩〕

好记忆不如烂笔头。留下您的足迹吧 :)