ive在Swift中创建了一个计时器,以在按下按钮时一次又一次地将Uislider从另一端移到另一端。但是我总是在计时器线上得到一个断点,尽管一切都应该是正确的。
@IBAction func setSliderValue(_ sender: UIButton){
mytimer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(timerAction), userInfo: nil, repeats: true)
}
func timerAction(){
let Range = slider.maximumValue - slider.minimumValue;
let Increment = Range/100;
let newval = slider.value + Increment;
if(Increment >= slider.maximumValue)
{
slider.setValue(newval, animated: true)
}
else
{
slider.setValue(0, animated: true)
}
}
检查功能的检查不正确。
func timerAction(){
let range = slider.maximumValue - slider.minimumValue
let increment = range/100
let newval = slider.value + increment
if newval <= slider.maximumValue {
slider.setValue(newval, animated: true)
} else {
slider.setValue(slider.minimumValue, animated: true)
}
}
在您的活动处理程序中,还应在实施新的时,首先将计时器(如果不是零)无效。
现在使用以下代码工作,尽管滑块仅从左向右移动,直到它被无效为止。
@IBAction func setSliderValue(_ sender: UIButton){
mytimer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(timerAction), userInfo: nil, repeats: true)
/*slider.setValue(100, animated: true)
print("The value of the slider is now (slider.value)")
sliderValue = Int(slider.value)*/
}
func timerAction(){
let Range = slider.maximumValue - slider.minimumValue;
let Increment = Range/100;
let newval = slider.value + Increment;
if(Increment <= slider.maximumValue)
{
slider.setValue(newval, animated: true)
print("The value of the slider is now (slider.value)")
sliderValue = Int(slider.value)
}
else if (Increment >= slider.minimumValue)
{
slider.setValue(newval, animated: true)
}
}
希望如果其他人在任务上需要帮助"启动计数计时器"按钮单击"。
"计时器本身必须被声明为的内部,并另外创建一个OBJ-C函数以更新将连接的#Selector的计时器。
class ViewController: UIViewController {
var myTimer = Timer()
var secondsToCount = 100
@IBAction func buttonTapped(_ sender: UIButton) {
myTimer.invalidate()
myTimer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: true)
}
@objc func updateTimer() {
secondsToCount -= 1
timerDisplayed.text = String(secondsToCount)
}
}
TimerDisplayed 是我连接的标签,以查看应用程序屏幕上的计时器值。
Swift 5.3&amp;Xcode 12.0.1