используйте поле uitext для остановки таймера (swift4) - PullRequest
0 голосов
/ 24 апреля 2018

Я хочу, чтобы пользователь ввел число в текстовое поле, и когда таймер достигнет этого числа, таймер остановится. Я пытаюсь это прямо сейчас, но он говорит, что я не могу использовать логические операторы, чтобы сделать это.

   import UIKit
class ViewController: UIViewController {
@IBOutlet var playbutton: UIButton!
@IBOutlet var titlelabel: UILabel!

    @IBOutlet var judo: UITextField!

var timer : Timer?
var counter = 0.0
var isRunning = false


override func viewDidLoad() {
    super.viewDidLoad()
    titlelabel.text = "\(counter)"
    playbutton.isEnabled = true

}

@IBAction func btnplay(_ sender: UIButton) {
    if timer == nil {
        timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(UpdateTime), userInfo: nil, repeats: true)
        playbutton.isEnabled = false
    }
}
@objc func UpdateTime(){
    counter += 0.1
    titlelabel.text = String(format: "%.1f", counter)
    if counter >= (Int(judo.text!)) {
        timer?.invalidate()
        timer = nil
    }



    }

    }

1 Ответ

0 голосов
/ 24 апреля 2018

Нельзя использовать бинарный оператор с операндами типа Double и Int.counter равно Double, поэтому правый операнд должен быть Double

let max = Double(judo.text ?? "") ?? 0.0
if counter >= max {
    timer?.invalidate()
    timer = nil
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...