Я новичок в Swift - пытаюсь создать приложение для iPhone/iPad. Надеюсь, ты поможешь мне.быстро: остановить таймер обратного отсчета в нуле
Я хочу включить таймер, отсчитывающий с 04:00 до 00:00. Затем он должен остановиться на ноль и вызвать звуковой эффект (который я еще не пытался реализовать). Обратный отсчет начинается, когда вы нажимаете кнопку запуска (в моем коде startTimer и stopTimer ссылаются на одну и ту же кнопку, однако кнопка только один раз нажимается в начале).
Таймер запускается и отсчитывается просто отлично. Он преобразует секунды в минуты, как и планировалось. Тем не менее, моя главная проблема заключается в том, что я не могу заставить обратный отсчет остановиться на ноль. Он продолжается за пределами 00: 0-1 и т. Д. Как это исправить?
import Foundation
import UIKit
import AVFoundation
class Finale : UIViewController {
@IBOutlet weak var timerLabel: UILabel!
var timer = NSTimer()
var count = 240
var timerRunning = false
override func viewDidLoad() {
super.viewDidLoad()
}
func updateTime() {
count--
let seconds = count % 60
let minutes = (count/60) % 60
let hours = count/3600
let strHours = hours > 9 ? String(hours) : "0" + String(hours)
let strMinutes = minutes > 9 ? String(minutes) : "0" + String(minutes)
let strSeconds = seconds > 9 ? String(seconds) : "0" + String(seconds)
if hours > 0 {
timerLabel.text = "\(strHours):\(strMinutes):\(strSeconds)"
}
else {
timerLabel.text = "\(strMinutes):\(strSeconds)"
}
}
@IBAction func startTimer(sender: AnyObject) {
var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("updateTime"), userInfo: nil, repeats: true)
}
func stopTimer() {
if count == 0 {
timer.invalidate()
timerRunning = false
}
}
@IBAction func stopTimer(sender: AnyObject) {
timerRunning = false
if count == 0 {
timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("stopTimer"), userInfo: nil, repeats: true)
timerRunning = true
}}
}
http://stackoverflow.com/a/29583418/2303865 –