我正在使用swift for iOS制作秒表应用。 制作应用程序,以便以秒为单位显示时间,这不是一个问题。现在我想改变它,以便以分钟和秒显示时间,例如1:20为1分20秒。 为实现上述目标,我做了以下工作:
import UIKit
class ViewController: UIViewController {
var timer = NSTimer()
var seconds:Int = 0
@IBOutlet weak var timerOutput: UILabel!
@IBAction func startButton(sender: AnyObject) {
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("result"), userInfo: nil, repeats: true)
}
@IBAction func stopButton(sender: AnyObject) {
timer.invalidate()
}
@IBAction func resetButton(sender: AnyObject) {
timer.invalidate()
seconds = 0
timerOutput.text = "\(seconds)"
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
timerOutput.text = "0:\(seconds)"
}
func result() {
seconds++
if seconds <= 60 {
timerOutput.text = "0:\(seconds)"
} else {
if seconds > 60 {
var minutes:Int = seconds/60
var newSeconds = minutes % seconds
timerOutput.text = "\(minutes):\(newSeconds)"
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
问题是应用程序在第二个if语句之后没有继续使用计数器,在那里我定义了60秒后发生的事情。我已经尝试了很多东西,从使用for和/或while语句到创建一个全新的函数秒数&gt; 60,但似乎没有任何工作。 目前,该应用程序完美地运行到0:60,然后显示1:1,到目前为止一直很好,然后没有做任何事情。它然后每分钟更新并显示2:2,3:3,4:4等等。
感谢任何帮助!
答案 0 :(得分:0)
newSeconds数学应该是这样的:
// number of seconds in a minute, not the number of seconds currently
var newSeconds = seconds % 60