здравствуйте! мне надо добавить кнопки в таймер которые будут прибавлять/убавлять 30 секунд из таймера
import UIKit
class FirstViewController: UIViewController {
@IBOutlet weak var Minute: UILabel!
@IBOutlet weak var Second: UILabel!
@IBOutlet weak var Start: UIButton!
@IBOutlet weak var Minus: UIButton!
@IBOutlet weak var Plus: UIButton!
var second = 10
var minute = 00
var timer = Timer()
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func start(_ sender: UIButton) {
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(countDownMethod), userInfo: nil, repeats: true)
Second.text = "\(second)"
Minute.text = "\(minute)"
}
@objc func countDownMethod(){
second -= 1
Second.text = "\(second)"
Minute.text = "\(minute)"
if second == 0 {
minute -= 1
second = 60
Second.text = "\(second)"
Minute.text = "\(minute)"
}
if minute == -1{
timer.invalidate()
minute = 6
second = 1
Second.text = "\(second)"
Minute.text = "\(minute)"
}
}
@IBAction func plus(_ sender: UIButton) {
second += 30
if second >= 59{
second = 1
minute += 1
Second.text = "\(second)"
Minute.text = "\(minute)"
}
}
@IBAction func minus(_ sender: UIButton) {
}
}
Ответы (1 шт):
Автор решения: VAndrJ
→ Ссылка
Для счета используйте единый источник. Вместо seconds и minutes оставьте только seconds:
var seconds: Int = 0
При форматировании уже отображайте из него что Вам неободимо (по Вашему примеру):
Second.text = "\(seconds % 60)" // Посмотрите Swift naming conventions, название сделайте с маленькой буквы и чтобы понятно было что это, к примеру, secondsLabel
Minute.text = "\(seconds / 60)"
И тогда прибавлять/отнимать не составит проблем:
// Прибавить просто
seconds += 30
// Отнять чтобы не стало отрицательным, к примеру, так:
seconds = max(0, seconds - 30)