如何将计时器设置为30秒,并使其在0.0秒后重新启动?

时间:2020-05-24 21:32:45

标签: swift xcode timer nstimer

我只是在尝试一个小项目。我希望用户能够选择3个时间选项之一。如果选择30秒,则计时器将运行30秒或10秒,以此类推(如果您选择了该时间)。时间用完后,我希望它在计时器达到0.0时重新回到选定的时间

我的代码可以运行18秒钟。如果将其设置为19或更高,它将不起作用。现在我还不知道为什么它能工作到18岁。任何帮助都将是惊人的。

class ViewController: UIViewController {

@IBOutlet weak var timerLabel: UILabel!
@IBOutlet weak var ChangeTime: UILabel!

var defaultTime = 0.0
var timer = Timer()

//buttons
@IBAction func ten(_ sender: UIButton) {
    ChangeTime.text = "10"
    timerLabel.text = ChangeTime.text
}
@IBAction func thirty(_ sender: UIButton) {
    ChangeTime.text = "30"
    timerLabel.text = ChangeTime.text
}
@IBAction func seven(_ sender: UIButton) {
    ChangeTime.text = "7"
    timerLabel.text = ChangeTime.text
}

@IBAction func startTimerBtn(_ sender: UIButton) {
    startTimerFunc()
}

func startTimerFunc() {
    timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(ViewController.action), userInfo: nil, repeats: true)
    defaultTime = Double(Int(ChangeTime.text!)!)
}

@objc func action() {

    if timerLabel.text == "0.0" {
        timer.invalidate()
        defaultTime = 10
        startTimerFunc()
    }

    defaultTime -= 0.1
    timerLabel.text = String(format: "%.1f", defaultTime)
}

1 个答案:

答案 0 :(得分:-1)

您需要将其转换为双重广告,然后再进行检查

S568_Hand_Analysis <- S566_Hand_Analysis %>% 
            mutate(c_flop_two_pairs = case_when(
                p_rank_0 %in% c(rank_0,rank_1,rank_2) ~ "1", 
                p_rank_1 %in% c(rank_0,rank_1,rank_2) ~ "1"))