首页 › 问答 › Linux › 正文 iOS Progress View 怎么实现进度条效果? 2026-04-28 18:00:16 约 1 分钟读完 30 阅 文章导读 ProgressView 具有以下属性: 📋 目录 一 iOS Progress View 属性 A A 博客文档招聘获取支持联系销售iOS Progress View 属性 ProgressView 具有以下属性: progressTintColor - 用于更改进度部分的 UIColor,即 ProgressView 中的填充部分。 trackTintColor - 用于更改轨道部分的 UIColor,即 ProgressView 中的未填充部分。 ProgressBarStyle - 有两种样式:default 和 bar。bar 样式具有透明轨道。 trackImage - 在此处使用图像代替颜色来表示未填充部分。 progressImage - 使用图像来显示进度。 让我们开始实现。我们的 Main.storyboard 包含一个用于启动/停止 ProgressView 的按钮。ViewController.swift 类的代码如下所示: import UIKit class ViewController: UIViewController { @IBOutlet weak var btn: UIButton! var isRed = false var progressBarTimer: Timer! var isRunning = false @IBAction func btnStart(_ sender: Any) { if(isRunning){ progressBarTimer.invalidate() btn.setTitle("Start", for: .normal) } else{ btn.setTitle("Stop", for: .normal) progressView.progress = 0.0 self.progressBarTimer = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(ViewController.updateProgressView), userInfo: nil, repeats: true) if(isRed){ progressView.progressTintColor = UIColor.blue progressView.progressViewStyle = .default } else{ progressView.progressTintColor = UIColor.red progressView.progressViewStyle = .bar } isRed = !isRed } isRunning = !isRunning } @IBOutlet weak var progressView: UIProgressView! override func viewDidLoad() { super.viewDidLoad() // 在加载视图后执行任何额外设置,通常来自 nib。 progressView.progress = 0.0 } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // 释放可以重新创建的资源。 } @objc func updateProgressView(){ progressView.progress += 0.1 progressView.setProgress(progressView.progress, animated: true) if(progressView.progress == 1.0) { progressBarTimer.invalidate() isRunning = false btn.setTitle("Start", for: .normal) } } } IBOutlet 和 IBActions 通过将 Main.storyboard 中的视图链接到 Swift 文件来创建。当按钮被点击时,我们启动一个 Timer,通过传递的 selector 函数 updateProgressView 来更新进度条。每隔一个 timer 会切换 ProgressView 的样式。在模拟器上运行上述应用程序的输出如下所示: 增加 ProgressView 的高度 我们可以通过以下方式更改 ProgressView 的高度: progressView.transform = progressView.transform.scaledBy(x: 1, y: 8) 这将高度放大 8 倍。让我们看看在模拟器中的效果。你也可以在 storyboard 的约束中更改高度:第二种方法更好,因为第一种方法在尝试塑造边缘时可能会使 ProgressView 像素化。 圆角 ProgressBar 在 viewDidLoad() 函数中添加以下代码。 override func viewDidLoad() { super.viewDidLoad() // 在加载视图后执行任何额外设置,通常来自 nib。 progressView.progress = 0.0 progressView.layer.cornerRadius = 10 progressView.clipsToBounds = true progressView.layer.sublayers![1].cornerRadius = 10 progressView.subviews[1].clipsToBounds = true } 我们将圆角半径设置为 ProgressView 高度的一半。以下是使用更新代码的应用程序输出。这结束了本教程。你可以从下面的链接下载项目: iOSProgressView 感谢与 Community 一起学习。查看我们提供的计算、存储、网络和管理数据库产品。 了解更多我们的产品