Я играю вокруг, чтобы изучить и реализовать progressView, который запускается с помощью функции и сбрасывается с помощью другой, когда по какой-то причине нажимаются кнопки (и передаются со значением) по какой-то причине после того, как первый щелчок работает нормально, даже если функции вызваны также при следующих щелчках и прогресс-представление сбрасывается, его анимация не перезапускается (проверенные функции и значения корректны при использовании print () ...)
import UIKit
class ViewController: UIViewController {
let eggTimes = ["Soft" : 5, "Medium" : 7, "Hard": 12]
@IBOutlet weak var progressView: UIProgressView!
//reset the progress bar
func resetProgress(){
progressView.setProgress(0, animated: true)
print("function progress view reset fired")
}
//starts the prgress bar
func startProgressView(duration: Double) {
UIView.animate(withDuration: duration) {
print("progress bar has been initiated")
self.progressView.setProgress(1.0, animated: true)
}
}
@IBAction func hardnessSelected(_ sender: UIButton) {
resetProgress()
print("progress bar has been reset")
let hardness = sender.currentTitle!
var timerCounter = eggTimes[hardness]! * 10
let temp1: Double = Double(timerCounter)
print("temp 1 = \(temp1) ")
self.startProgressView(duration: temp1)
print(eggTimes[hardness]!)
let timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { (timer) in
if timerCounter > 0 {
timerCounter -= 1
// print(timerCounter)
}
else {
print("egg ready")
timer.invalidate()
}
}
}
}
PS Извините, если мой вопрос написан неправильно ... впервые за много лет я спрашиваю