-1
iOS 용 스톱워치 앱을 만들고 있습니다. 앱을 만들면 시간이 초 단위로 표시되므로 문제가되지 않습니다. 이제는 분과 초 단위로 시간을 표시하도록 변경하려고합니다. 예를 들어 1 분 20 초 동안 1:20으로 표시합니다. 위를 달성하기 위해, 나는 다음과 같은 한 :if 문에서 카운터 계속
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.
}
}
문제는 앱이 초 후에 카운터를 계속하지 않는 경우 I 60 초 후에 발생하는 정의 문. 나는 for 및/또는 while 문을 사용하는 것에서 초> 60 동안 완전히 새로운 함수를 만드는 것에 이르기까지 많은 것들을 시도했지만 아무 것도 작동하지 않는 것 같다. 현재 앱은 0:60까지 완벽하게 진행되어 1 : 1로 보여줍니다. 지금까지는 그렇게 좋았고 아무 것도하지 않았습니다. 그런 다음 1 분마다 업데이트되어 2 : 2, 3 : 3, 4 : 4 등으로 표시됩니다.
감사합니다.
내 부분에 오른쪽 바보 같은 실수입니다. 이 아니어야합니다. var newSeconds = 초 % 60 – sar91
예. 내 부분에 어리석은 실수 :) – keithbhunter
그래, 그게 다야. 그것은 지금 잘 작동합니다, 나는 그런 바보 같은 일에 3 시간 이상을 보냈습니다. 어쨌든 고마워! – sar91