随着进度条的进展更新按钮

Updating Button as Progress Bar progresses

我正在尝试更新标记为 "Order Safety Escort" 的按钮以在加载进度条时更改其措辞。进度条已经连接到按钮并且工作正常。但是,措辞没有更新。

class SEController: UIViewController {
    @IBOutlet weak var requestBtn: UIButton!
    @IBOutlet weak var progressBar: UIProgressView!

    var progressValue: Float = 0

    override func viewDidLoad() {
        super.viewDidLoad()

        requestBtn.layer.cornerRadius = 5
        requestBtn.clipsToBounds = true
    }

    @IBAction func request(_ sender: Any) {
        Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(updateProgress), userInfo: nil, repeats: true)
        if (progressValue == 2) {
            requestBtn.setTitle("Ording Safety Escort", for:[])
        } else if (progressValue == 4) {
            requestBtn.setTitle("Sending Current Location", for:[])
        } else if (progressValue == 6) {
            requestBtn.setTitle("Current Location Recieved", for:[])
        } else if (progressValue == 8) {
            requestBtn.setTitle("Safety Escort In Route", for:[])
        }
    }

    @objc func updateProgress() {
        progressValue += 0.01/9
        progressBar.progress = progressValue
    }
}

您的 if/else 块需要在 updateProgress 内,而不是在 request.

另请注意,即使代码位置正确,由于浮点数学问题,您的消息也可能不会显示。您正在用一个小的十进制值递增 progressValue,它可能永远不会完全等于 2、4、6 或 8。您可能会得到 1.999999,然后是 2.0011111 或类似的东西。

所以你可能想要这样的东西:

if progressValue - 2 < 0.0011 {
} else if ...

请注意,在 Swift 和 if 中不需要括号。