loops - 在 Xcode 上,只要屏幕保持不动,如何将变量 'counter' 每秒增加 1?

标签 loops swiftui timer

我最近开始学习和使用 Xcode,但遇到了一些问题。

我需要一个可变的速度,以便我按住屏幕时每秒增加 1。我读过the docs但我几乎什么都不懂,而且很多信息看起来与我正在做的事情无关。这是我现在拥有的代码:

class ViewController: UIViewController {\
    @IBOutlet weak var counterLabel: UILabel!
    var counter = 0
    // The number of seconds after which to update
    var speed = 1

    override func viewDidLoad() {
        super.viewDidLoad()
        counterLabel.text = "\(counter)"
    }

    @IBAction func screenHeld(_ sender: Any) {
        // Need to add code here
    }
}

最佳答案

  • 创建一个全局Timer变量。当用户触摸屏幕时, 计时器已启动。
  • 计时器将递增您的全局变量。还要检查计时器回调中是否满足您的条件。
  • 当用户从屏幕上松开手指时,计时器将失效,并且全局变量将重置为零。

这里是未经测试的代码,可以帮助您入门:

var timer: Timer?
var myCounter = 0

// Connect to the corresponding control or the tap recognizer.
@IBAction func screenBeginTouch(_ sender: Any)
{
    self.timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true)
    {
        timer in
        self.myCounter += 1
        // Check condition here
    }
}

// Connect to the corresponding control or the tap recognizer.
@IBAction func screenEndTouch(_ sender: Any)
{        
    self.timer?.invalidate()
    self.timer = nil
    self.myCounter = 0
}

Timer Apple Documentation

关于loops - 在 Xcode 上,只要屏幕保持不动,如何将变量 'counter' 每秒增加 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56928968/

相关文章:

swiftui - 为什么我得到 "Instance method ' 背景(_ :alignment: )' requires that ' UIColor' conform to 'View' "?

java - 使用 java swing Timer 处理文本并将其附加到文本区域

Java Swing 定时器;创建一个循环;数到 4 两次

ios - 如何在 onDelete 中获取当前的 CoreData 项

java - 在java中,我如何检查用于输入成绩的数组的输入验证(不能为负数,不能超过100)

ios - 如何在 WidgetKit、SwiftUI 中更改午夜 View ?

java - Android - 即使应用程序关闭时也在后台计算时间

c - 为什么程序对 Xilinx 定时器驱动程序中的只读定时器中断状态寄存器执行写访问

java - 为什么这个 for 循环会给出空指针异常?

python - 我如何为这个给定的列表放置 for 循环?