Ios 在swift中单击按钮启动计时器

Ios 在swift中单击按钮启动计时器,ios,swift,timer,Ios,Swift,Timer,我在swift中创建了一个计时器,当按下按钮时,它可以一次又一次地将UISlider从一端移动到另一端。但是我总是在计时器行上得到一个断点,尽管一切都应该是正确的 @IBAction func setSliderValue(_ sender: UIButton){ mytimer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(timerAction), userInfo:

我在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)
    }
}
func timerAction(){
让范围=slider.maximumValue-slider.minimumValue
让增量=范围/100
让newval=slider.value+增量

如果newval现在可以使用以下代码,尽管滑块仅从左向右移动,直到无效为止

@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)
        }
    }
@iAction func setSliderValue(\uSender:ui按钮){
mytimer=Timer.scheduledTimer(时间间隔:0.1,目标:self,选择器:#选择器(timerAction),用户信息:nil,重复:true)
/*slider.setValue(100,动画:真)
打印(“滑块的值现在为\(slider.value)”)
sliderValue=Int(slider.value)*/
}
func timerAction(){
让范围=slider.maximumValue-slider.minimumValue;
让增量=范围/100;
让newval=slider.value+Increment;
如果(增量=滑块最小值)
{
slider.setValue(newval,动画:true)
}
}

如果其他人需要“点击按钮启动倒计时”任务的帮助,希望这能有所帮助

定时器本身必须在按钮代码的内声明,并另外创建一个Obj-C函数来更新将通过#选择器连接的定时器

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&Xcode 12.0.1

“获取断点”-你的意思是你的代码在使用
exc_断点时崩溃了
?请发布你在Xcode控制台中看到的错误消息。它会与绿色下划线Thread 1:breakpoint 1.1和(lldb)一起崩溃在控制台中。但只有当我点击链接到setSliderValue的按钮时。这不是错误消息,在调试中点击continue以查看实际的崩溃消息。嗯,它不再崩溃看起来像是因为Xcode的换行。