Текст для подсчета Это числа, которые мне нравится отсчитывать, S = начало, O = остановка, R = сброс. Добавлено для упрощения функций, но я не хочу их использовать.
Я пытаюсь установить таймер обратного отсчета в этом приложении, но у меня возникают проблемы с его работой с учебниками, которые я видел. Я предполагаю, что эта версия swift имеет различные функции, версия XCode 9.4.
Цель состоит в том, чтобы иметь счетчик на год, дни и время, так как каждый заканчивается, он останавливается и считает следующий, предпочтительноЯ хочу, чтобы случайные числа отсутствовали, кнопки «Пуск» или «Стоп», запуск может быть после открытия приложения или если пользователь принимает на предыдущем экране.
Я пробовал эти методы, но они либо ничего не делают, либо вынуждают меня использовать @object func counter (), я считаю, что таймер не вызывает функцию, если она является объектом, я незнаю, как это назвать.
import UIKit
class ViewController: UIViewController {
var seconds = 30
var timer = Timer()
//these are others I will implement later
@IBOutlet weak var YRS: UILabel!
var yrs = 1
@IBOutlet weak var DAY: UILabel!
var day = 3
@IBOutlet weak var HRS: UILabel!
var hrs = 5
@IBOutlet weak var SEC: UILabel!
var sec = 35
@IBOutlet weak var MIN: UILabel!
//timer function, I believe I have to change #selector as is not
calling the counter func
@IBAction func str(_ sender: UIButton) {
//I have also used just counter but nothing changes :/
timer = Timer.init(timeInterval: 60.0, target: self, selector:
#selector(ViewController.counter), userInfo: nil, repeats: true)
MIN.text = String (seconds)
}
//stop button
@IBAction func sto(_ sender: Any) {
}
//reset button
@IBAction func rst(_ sender: Any) {
}
//counter here -1
@objc func counter(){
seconds -= 1
MIN.text = String(seconds)
if (seconds == 00) {
timer.invalidate()
}
}
override func viewDidLoad() {
super.viewDidLoad()
}
//Something I have tried but did not work
_ = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(UIMenuController.update), userInfo: nil, repeats: true)
}
func update() {
if(min > 0) {
MIN.text = String(min-1)
}
}
//No errors found, the screen is updated with the value but it does not change.