我正在尝试更新标记为“订单安全护航”的按钮,以在进度栏加载时更改其措辞。进度条已经连接到该按钮,并且可以正常工作。但是,措词不会更新。
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
}
}
答案 0 :(得分:0)
您的if/else
块必须位于updateProgress
内,而不是request
内。
还请注意,即使将代码放在正确的位置,由于浮点数学问题,您的消息也可能不会出现。您正在以较小的十进制值递增progressValue
,它可能永远不会精确等于2、4、6或8。可能会达到1.999999,然后是2.0011111或类似的值。
所以您可能想要类似的东西:
if progressValue - 2 < 0.0011 {
} else if ...
请注意,在Swift中,if
不需要括号。